91 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "ArgParse.h"
 | |
| #include <stdbool.h>
 | |
| #include <stdio.h>
 | |
| #include <string.h>
 | |
| 
 | |
| ArgParse *initArgParse() {
 | |
|     ArgParse *argparse    = argParseInit("测试程序",NOVALUE);
 | |
|     Command  *command     = NULL;
 | |
|     Command  *sub_command = NULL;
 | |
| 
 | |
|     // add global arguments
 | |
|     argParseAddGlobalArg(argparse,
 | |
|                          "-v",
 | |
|                          "--version",
 | |
|                          "Show version",
 | |
|                          NULL,
 | |
|                          NULL,
 | |
|                          false,
 | |
|                          NOVALUE);
 | |
|     argParseAddGlobalArg(
 | |
|         argparse, "-q", "--quiet", "Quiet mode", NULL, NULL, false, NOVALUE);
 | |
| 
 | |
|     // add arguments
 | |
|     command = argParseAddCommand(
 | |
|         argparse, "install", "Install the package", NULL, NULL, NULL, NOVALUE);
 | |
|     argParseAddArg(command,
 | |
|                    "-i",
 | |
|                    "--index",
 | |
|                    "Index URL",
 | |
|                    "https://example.com",
 | |
|                    NULL,
 | |
|                    false,
 | |
|                    SINGLEVALUE);
 | |
|     argParseAddArg(command,
 | |
|                    "-f",
 | |
|                    "--file",
 | |
|                    "Package file",
 | |
|                    "package.json",
 | |
|                    NULL,
 | |
|                    false,
 | |
|                    MULTIVALUE);
 | |
|     argParseAddArg(command,
 | |
|                    "-p",
 | |
|                    "--package",
 | |
|                    "Package file",
 | |
|                    "package.json",
 | |
|                    NULL,
 | |
|                    false,
 | |
|                    MULTIVALUE);
 | |
| 
 | |
|     sub_command = argParseAddSubCommand(
 | |
|         command, "tools", "Install tools", NULL, NULL, NULL, MULTIVALUE);
 | |
| 
 | |
|     argParseAddArg(sub_command,
 | |
|                    "-t",
 | |
|                    "--tool",
 | |
|                    "Tool name",
 | |
|                    "Tool name",
 | |
|                    NULL,
 | |
|                    true,
 | |
|                    MULTIVALUE);
 | |
|     sub_command = argParseAddSubCommand(
 | |
|         command, "tools_sub", "Install tools", NULL, NULL, NULL, MULTIVALUE);
 | |
| 
 | |
|     argParseAddArg(sub_command,
 | |
|                    "-s",
 | |
|                    "--source",
 | |
|                    "test_source",
 | |
|                    "tools subcommand test",
 | |
|                    NULL,
 | |
|                    true,
 | |
|                    MULTIVALUE);
 | |
| 
 | |
|     command = argParseAddCommand(argparse,
 | |
|                                  "uninstall",
 | |
|                                  "Uninstall the package",
 | |
|                                  NULL,
 | |
|                                  NULL,
 | |
|                                  NULL,
 | |
|                                  SINGLEVALUE);
 | |
|     argParseAddArg(command,
 | |
|                    "-p",
 | |
|                    "--package",
 | |
|                    "Package name",
 | |
|                    "Package name",
 | |
|                    NULL,
 | |
|                    true,
 | |
|                    MULTIVALUE);
 | |
| 
 | |
|     return argparse;
 | |
| } |