From c86f8cd33644c04368f1a181534285c94ddda2f9 Mon Sep 17 00:00:00 2001 From: daniel Date: Thu, 5 Jun 2025 01:07:21 +0300 Subject: [PATCH] Project Skeleton --- CMakeLists.txt | 0 Makefile | 35 +++++++++++++++++++++++++++++++++++ bin/cpm | Bin 0 -> 16104 bytes build/.env | 0 build/cli.o | Bin 0 -> 1768 bytes build/install.o | Bin 0 -> 808 bytes build/main.o | Bin 0 -> 1256 bytes core/cli.c | 24 ++++++++++++++++++++++++ core/main.c | 5 +++++ include/Header.h | 0 include/cli.h | 6 ++++++ 11 files changed, 70 insertions(+) delete mode 100644 CMakeLists.txt create mode 100644 Makefile create mode 100755 bin/cpm delete mode 100644 build/.env create mode 100644 build/cli.o create mode 100644 build/install.o create mode 100644 build/main.o delete mode 100644 include/Header.h create mode 100644 include/cli.h 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 0000000000000000000000000000000000000000..dcf28695da5e82c9cc3c81e1cf0afbe971d828cb GIT binary patch literal 16104 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 F{Rh89PB#Dm literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2463b15ba50eea6ab03f9dbfb4270c45f7a4faff GIT binary patch literal 1768 zcmbtUL1+_E5S>kGtF<*zstEP4f@nl{n*b@+0HIM3<&~o z5#SyidmIJW3m@BQ*G$7K%)qMB{-QK{VtcEnw4I~FY@f2fwQy^0^@QyUO7{fOmG2ZO;r zo&E7W?XX<7Y|$)<1+!XJjiR-%u5DVW=|Zh4O8SB%=~|@*k`B@<$UJ!@KGW(}*)&q( zVx^>tOHR2`6ytINAeYIc#MlEZUseqfyDuB>f0bwI5 z%+E}n+`+rJgg7mdceE{@iM|eHW+y{$kwHMP&^1oLk3mp095_LMFu0=_OPNCNoQLoB zfLH`qbc{K4=sSXNC{)UFf%dh!V?fQZEwJo*p;{Z}U14X1P}5WD<2*=iGJFCxb;t3i z4CnmI%zwc&@h5R{euLqh&+E1Rz~AxluQ7ku!}sr@bKBI=hSmhEJoWT>f+~GW;sTJ%1x^!mA^i{6FT!> z^YN$Z_BA#;#D3u-$qm(L=lyfw4jR-`oC8eXXN|^uIPah9C5&_1OMMvx25_G<%-_Gx z@^5<&Mcd#13SvR?i?IvkbE5fCF3;yUmGRd`2;Q*zd*q;;#zl4f`KJ)`&ki9_*rD{k VyyCx>vltA@Pcu;UCZp}o{|#3m%A^1Q literal 0 HcmV?d00001 diff --git a/build/install.o b/build/install.o new file mode 100644 index 0000000000000000000000000000000000000000..fea45196813ea6b3b30a3d608ef843e8198c2d40 GIT binary patch literal 808 zcmbVKv1$TA5S`PIL{g;_(rBeYUA)6IDP%#7jo9S__Ra+*-U;3cvGO<4`*XH_fzId- zu4`omjyLbkyqVqQHiOYuAqapYfG%7Zs{p%83i6aoD8Vzpu-E&n)cZP~sjL!4A`X@$Yxn?)O;=y0Fkd#qhds}JmZuzqkj#Ei82aAoaZ2t zMVjgiwQOOu7>>VNI41eI8Go|}RQj{^7mE!3 S{#PvcZ%@5jYZzE$@cl<994&YN literal 0 HcmV?d00001 diff --git a/build/main.o b/build/main.o new file mode 100644 index 0000000000000000000000000000000000000000..e5db105e3ae67b2c7ac76c11d214c88c19e3f5ea GIT binary patch literal 1256 zcmbtS%Syvg5S_H8J}Xregt{m$q@rF-aUm`wQnf`yK`7`#B&iXLCQ6$^6~u)g)^7YK z7wQlA2Z9S1x-aNVdZ)dFxY2>R=ghhDNG7>n+gy)m8n9`w4Bd!TfOkbSeA$3O7=U7- z@m9F`NH(rog+}eO&@6s7*O0z8p57_#Dih- zEhWDvz^Fv+atE|}QcDf?^giJ13Dn8SCh1riO5R3tiTFMyQ2dM0W5?j@JM20d@}|^l zMA7|Os3p*oVND#f?1~Z)KtwXPf0y0^B6290SwNc#e3@c*Lodm zspmYpYCJ!qipY6B7MTny;EKbAL;gzf)a4&pu2{(I25 xp7pTV)cctZw0aw$ACYz(tf#)g-BXDn=Z{gKn3OxpFtV`vJDIrG$!wEg{SU1zT6+Kh literal 0 HcmV?d00001 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