code: function main(){
  
      var argv =      yargs
                      .boolean( "a" )
                      .boolean( "r" )
                      .boolean( "s" )
                      .boolean( "c" )
                      .boolean( "h" )
                      .boolean( "v" )
                      .argv;
  
      var options =   {
          all:        argv.a || argv.all || false,
          recursive:  argv.r || argv.recursive || false,
          sort:       argv.s || argv.sort || false,
      };
  
      if ( argv.v || argv.version ){
          return printAndExitOk( getVersion() );
      }
  
      if ( argv.h || argv.help ){
          return printAndExitOk( getHelp() );
      }
          
      if ( !argv._ || !argv._.length ){
          return printAndExitError( getHelp() );
      }
  
      if ( argv.p || argv.parts ){
          options.parts = ( argv.p || argv.parts ).split( "," );
      }
  
      if( argv.i || argv["include-path"] ){
          options.includePath = ( argv.i || argv["include-path"] ).split( path.delimiter );
      }
  
      var cat =       argv.c || argv.cat;
      var fmt =       argv.f || argv.format;
  
      if ( cat && !options.parts ){
          return printAndExitError( "Please specify which parts should be concatenated with the -p option." );
      }
  
      if ( cat && fmt ){
          return printAndExitError( "Please choose either concatenating parts (-c) or outputing components (-f)." );
      }
  
      var components =    mpc.apply( this, [ options ].concat( argv._ ));
  
      if ( cat ){
          return catParts( components, options.parts );
      }
  
      switch( fmt ){
          
          case "json":
              console.log( JSON.stringify( components ));
              break;
  
          case "csv":
          default:
              return printCsv( components );
      }
  }
docs: / Functions ------------------------------------------------------------------