From 64ef51a8ce6bc148ba493e350e2cac4cba470201 Mon Sep 17 00:00:00 2001 From: Joursoir Date: Sat, 31 Oct 2020 17:45:29 +0000 Subject: some features: remake README.md for new code architecture; add help command; add man page; --- src/easydir.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/easydir.c (limited to 'src/easydir.c') diff --git a/src/easydir.c b/src/easydir.c new file mode 100644 index 0000000..162bae7 --- /dev/null +++ b/src/easydir.c @@ -0,0 +1,79 @@ +#include +#include +#include +#include +#include +#include + +#include "handerror.h" + +int deleteFile(char *file_path) +{ + char *arguments[] = {"rm", file_path, NULL}; + easyFork("rm", arguments); + + return 1; +} + +int deleteEmptyDir(char *dir_path) +{ + #if defined(DEBUG) + char *arguments[] = {"rmdir", "-p", dir_path, NULL}; + #else + char *arguments[] = {"rmdir", "-p", "--ignore-fail-on-non-empty", dir_path, NULL}; + #endif + easyFork("rmdir", arguments); + + return 1; +} + +int checkFileExist(char *path_to_file) +{ + FILE *pFile; + + pFile = fopen(path_to_file, "r+"); // r+ so that errno can equal EISDIR + if(pFile == NULL) { + if(errno == ENOENT) // file doesn't exist + return 0; + if(errno == EISDIR) // it's directory + return 2; + else callError(120); + } + fclose(pFile); + + return 1; +} + +char *fileCropLineFeed(char *path, char *text, int maxlen) +{ + FILE *file = fopen(path, "r+"); + if(file == NULL) callError(130); + + int symbol; + int pos = 0; + char *str = (char *) malloc(sizeof(char) * maxlen); + while((symbol = fgetc(file))) + { + switch(symbol) + { + case '\n': + case EOF: { + str[pos] = '\0'; + pos = -1; // for break while + break; + } + default: { + str[pos] = symbol; + pos++; + break; + } + } + if(pos == -1) break; + if(pos > maxlen-1) { str[pos-1] = '\0'; break; } + } + fclose(file); + + strcpy(text, str); + free(str); + return text; +} -- cgit v1.2.3-18-g5258