mirror of
https://github.com/xHyroM/gimi.git
synced 2024-11-21 15:41:04 +01:00
feat: basic cli & constants
This commit is contained in:
parent
2bc2a5387e
commit
39714f1f3f
8 changed files with 111 additions and 4 deletions
|
@ -6,6 +6,8 @@ set(CMAKE_CXX_STANDARD 23)
|
|||
set(CMAKE_CXX_STANDARD_REQUIRED true)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY build)
|
||||
|
||||
file(GLOB_RECURSE SRC ./src/*.c ./src/*.h)
|
||||
file(GLOB_RECURSE SRC CONFIGURE_DEPENDS ./src/*.c ./src/*.h)
|
||||
|
||||
configure_file(src/gimi_constants.h.in src/gimi_constants.h)
|
||||
|
||||
add_executable(gimi ${SRC})
|
||||
|
|
25
src/cli/cli.c
Normal file
25
src/cli/cli.c
Normal file
|
@ -0,0 +1,25 @@
|
|||
#include "../gimi_constants.h"
|
||||
#include "command/init.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define HELP \
|
||||
"Usage: gimi [-h | --help] [-v | --version]\n\n" \
|
||||
"A simple tool for managing multiple git remotes as mirrors\n\n" \
|
||||
"Commands\n"
|
||||
|
||||
void cli_print_help() { printf("%s", HELP); }
|
||||
void cli_print_version() {
|
||||
printf("gimi version %d.%d.%d\n", GIMI_VERSION_MAJOR, GIMI_VERSION_MINOR,
|
||||
GIMI_VERSION_PATCH);
|
||||
}
|
||||
|
||||
int cli_handle(int argc, char **argv) {
|
||||
char *sub_command = argv[0];
|
||||
|
||||
if (strcmp(sub_command, "init") == 0) {
|
||||
cli_command_init(argc, argv);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
25
src/cli/cli.h
Normal file
25
src/cli/cli.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
#define HANDLE_OPTIONS(argc, argv, optstring, ...) \
|
||||
int opt; \
|
||||
opterr = 0; \
|
||||
while ((opt = getopt(argc, argv, optstring)) != -1) { \
|
||||
switch (opt) { \
|
||||
__VA_ARGS__ \
|
||||
default: { \
|
||||
printf("unknown option -%c\n", (char)optopt); \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
argc -= optind; \
|
||||
argv += optind;
|
||||
|
||||
#define OPTION(opt, func) \
|
||||
case opt: { \
|
||||
func(); \
|
||||
break; \
|
||||
}
|
||||
|
||||
void cli_print_help();
|
||||
void cli_print_version();
|
||||
|
||||
int cli_handle(int argc, char **argv);
|
5
src/cli/command/init.c
Normal file
5
src/cli/command/init.c
Normal file
|
@ -0,0 +1,5 @@
|
|||
#include "../cli.h"
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void cli_command_init(int argc, char **argv) { printf("init"); }
|
1
src/cli/command/init.h
Normal file
1
src/cli/command/init.h
Normal file
|
@ -0,0 +1 @@
|
|||
void cli_command_init(int argc, char **argv);
|
4
src/gimi_constants.h
Normal file
4
src/gimi_constants.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
// Do not edit manually! Generated by cmake
|
||||
#define GIMI_VERSION_MAJOR 0
|
||||
#define GIMI_VERSION_MINOR 1
|
||||
#define GIMI_VERSION_PATCH 0
|
4
src/gimi_constants.h.in
Normal file
4
src/gimi_constants.h.in
Normal file
|
@ -0,0 +1,4 @@
|
|||
// Do not edit manually! Generated by cmake
|
||||
#define GIMI_VERSION_MAJOR @gimi_VERSION_MAJOR@
|
||||
#define GIMI_VERSION_MINOR @gimi_VERSION_MINOR@
|
||||
#define GIMI_VERSION_PATCH @gimi_VERSION_PATCH@
|
47
src/main.c
47
src/main.c
|
@ -1,6 +1,47 @@
|
|||
#include <stdio.h>
|
||||
#include "cli/cli.h"
|
||||
#include <string.h>
|
||||
|
||||
int main() {
|
||||
printf("hello!");
|
||||
int main(int argc, char **argv) {
|
||||
if (argc == 1) {
|
||||
cli_print_help();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) {
|
||||
cli_print_help();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "-v") == 0 || strcmp(argv[1], "--version") == 0) {
|
||||
cli_print_version();
|
||||
return 0;
|
||||
}
|
||||
|
||||
argc -= 1;
|
||||
argv += 1;
|
||||
|
||||
cli_handle(argc, argv);
|
||||
|
||||
/*int opt;
|
||||
opterr = 0;
|
||||
while ((opt = getopt(argc, argv, "hv")) != -1) {
|
||||
switch (opt) {
|
||||
case 'h': {
|
||||
print_help();
|
||||
break;
|
||||
}
|
||||
case 'v': {
|
||||
print_version();
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
printf("unknown option -%c\n", (char)optopt);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue