diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..459829d --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ +CC = gcc +CFLAGS = -Wall -Wextra -std=c99 -I$(HEADERS_DIR) + +BIN_DIR = bin +BUILD_DIR = build +CORE_DIR = core +MODULES_DIR = modules +HEADERS_DIR = include + +SRC_FILES = $(wildcard $(CORE_DIR)/*.c) $(wildcard $(MODULES_DIR)/*.c) +OBJ_FILES = $(patsubst %.c,$(BUILD_DIR)/%.o,$(notdir $(SRC_FILES))) + +TARGET = $(BIN_DIR)/cpm + +all: $(TARGET) + +$(TARGET): $(OBJ_FILES) | $(BIN_DIR) + $(CC) $(CFLAGS) -o $@ $(OBJ_FILES) + +$(BUILD_DIR)/%.o: $(CORE_DIR)/%.c | $(BUILD_DIR) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR)/%.o: $(MODULES_DIR)/%.c | $(BUILD_DIR) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + +$(BIN_DIR): + mkdir -p $(BIN_DIR) + +clean: + rm -rf $(BUILD_DIR)/* + +.PHONY: all clean diff --git a/bin/cpm b/bin/cpm new file mode 100755 index 0000000..dcf2869 Binary files /dev/null and b/bin/cpm differ diff --git a/build/.env b/build/.env deleted file mode 100644 index e69de29..0000000 diff --git a/build/cli.o b/build/cli.o new file mode 100644 index 0000000..2463b15 Binary files /dev/null and b/build/cli.o differ diff --git a/build/install.o b/build/install.o new file mode 100644 index 0000000..fea4519 Binary files /dev/null and b/build/install.o differ diff --git a/build/main.o b/build/main.o new file mode 100644 index 0000000..e5db105 Binary files /dev/null and b/build/main.o differ diff --git a/core/cli.c b/core/cli.c index e69de29..011bf46 100644 --- a/core/cli.c +++ b/core/cli.c @@ -0,0 +1,24 @@ +#include +#include +#include "../include/cli.h" + +int cli_run(int argc, char *argv[]){ + for(int i = 1; i != argc; i++){ + if (argc < 2){ + printf("List of commands/keys:\ncpm -h/--help\n"); + return 1; + } + if (strcmp(argv[i], "-h") == 0){ + // Комментарий для Маши + // + // Тут должен быть код, который вызывает реализацию ключа -h ИЛИ --help + // Реализация должа предусмотреть что вызов любой версии команды равнозначен + // Реализация должна быть в папке modules, для обеспечения модульности программы + // Когда будешь кодить, удали этот комментарий пожалуйста + } + if (strcmp(argv[i], "-v") == 0){ + printf("CPM Version: Alfa Build 0.1\n"); + } + } + return 0; +} diff --git a/core/main.c b/core/main.c index e69de29..678b34a 100644 --- a/core/main.c +++ b/core/main.c @@ -0,0 +1,5 @@ +#include "../include/cli.h" + +int main(int argc, char *argv[]){ + return cli_run(argc, argv); +} diff --git a/include/Header.h b/include/Header.h deleted file mode 100644 index e69de29..0000000 diff --git a/include/cli.h b/include/cli.h new file mode 100644 index 0000000..6ef83aa --- /dev/null +++ b/include/cli.h @@ -0,0 +1,6 @@ +#ifndef CLI_H +#define CLI_H + +int cli_run(int argc, char *argv[]); + +#endif