Difference between revisions of "Truxton etl add command line argument"

From truxwiki.com
Jump to navigation Jump to search
(Created page with "This is used to build the command line arguments for the process. =Syntax= <syntaxhighlight lang="C"> void truxton_etl_add_command_line_argument( uint64_t etl_handle, char co...")
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
This is used to build the command line arguments for the process.
 
This is used to build the command line arguments for the process.
 +
Truxton will automatically parse the command line for you but this allows you to programmatically force command line options.
  
 
=Syntax=
 
=Syntax=
<syntaxhighlight lang="C">
+
<source lang="C">
void truxton_etl_add_command_line_argument( uint64_t etl_handle, char const * buffer );
+
void truxton_etl_add_command_line_argument( uint64_t etl_handle, char const * argument );
</syntaxhighlight>
+
</source>
  
 
=Parameters=
 
=Parameters=
 
==<code>etl_handle</code>==
 
==<code>etl_handle</code>==
 +
The handle created by the [[truxton_etl_create]] call.
  
The handle created by the [[truxton_create]] call.
+
==<code>argument</code>==
 +
The command line argument to add.
  
 
=Sample=
 
=Sample=
 +
<source lang="C" highlight="14-15">
 +
#include <TruxtonCAPI.h>
  
<syntaxhighlight lang="C" highlight="3">
+
void main( void )
void add_folder(uint64_t truxton, uint64_t parent_file)
 
 
{
 
{
  truxton_start_adding_files(truxton);
+
    char file_id[ 65 ];
  
  uint64_t child = truxton_child_file_new_child(parent_file);
+
    uint64_t message = 0;
 +
    uint64_t app = truxton_etl_create();
  
  truxton_child_file_set_type(child, Type_Directory);
+
    truxton_etl_set_application_name( app, "Sample C ETL" );
  truxton_child_file_set_name(child, "Custom Exploits Folder");
+
    truxton_etl_set_stage_number( app, 42 );
 +
    truxton_etl_set_queue_name( app, "SampleC" );
  
  FILETIME now;
+
    truxton_etl_add_command_line_argument( app, "--verbose" );
 +
    truxton_etl_add_command_line_argument( app, "Yes" );
  
  GetSystemTimeAsFileTime(&now);
+
    // Pause here until we get a message from the "SampleC" message queue
 +
    message = truxton_etl_get_message( app );
  
  ULARGE_INTEGER ticks;
+
    while( message != 0 )
 +
    {
 +
        // Do something with the message
  
  ticks.LowPart = now.dwLowDateTime;
+
        memset( file_id, 0x00, sizeof( file_id ) );
  ticks.HighPart = now.dwHighDateTime;
+
        truxton_message_get_file_id( message, file_id, sizeof( file_id ) );
  
  truxton_child_file_set_created(child, ticks.QuadPart);
+
        printf( "Received file id %s\n", file_id );
  truxton_child_file_set_accessed(child, ticks.QuadPart);
 
  truxton_child_file_set_modified(child, ticks.QuadPart);
 
  
  truxton_child_file_set_origin(child, ORIGIN_GENERATED);
+
        truxton_message_destroy( message );
  
  if ( truxton_child_file_save(child) == 0 )
+
        // Pause here until we get another message from the "SampleC" message queue
  {
+
        message = truxton_etl_get_message( app );
      printf( "Failed to add child to Truxton\n" );
+
    }
  }
+
 
 +
 
 +
    truxton_etl_destroy( app );
 
}
 
}
</syntaxhighlight>
+
</source>

Latest revision as of 11:25, 10 February 2021

This is used to build the command line arguments for the process. Truxton will automatically parse the command line for you but this allows you to programmatically force command line options.

Syntax

void truxton_etl_add_command_line_argument( uint64_t etl_handle, char const * argument );

Parameters

etl_handle

The handle created by the truxton_etl_create call.

argument

The command line argument to add.

Sample

#include <TruxtonCAPI.h>

void main( void )
{
    char file_id[ 65 ];

    uint64_t message = 0;
    uint64_t app = truxton_etl_create();

    truxton_etl_set_application_name( app, "Sample C ETL" );
    truxton_etl_set_stage_number( app, 42 );
    truxton_etl_set_queue_name( app, "SampleC" );

    truxton_etl_add_command_line_argument( app, "--verbose" );
    truxton_etl_add_command_line_argument( app, "Yes" );

    // Pause here until we get a message from the "SampleC" message queue
    message = truxton_etl_get_message( app );

    while( message != 0 )
    {
        // Do something with the message

        memset( file_id, 0x00, sizeof( file_id ) );
        truxton_message_get_file_id( message, file_id, sizeof( file_id ) );

        printf( "Received file id %s\n", file_id );

        truxton_message_destroy( message );

        // Pause here until we get another message from the "SampleC" message queue
        message = truxton_etl_get_message( app );
    }


    truxton_etl_destroy( app );
}