This repository has been archived on 2020-12-25. You can view files and clone it, but cannot push or open issues or pull requests.
ldl3/main.c

107 lines
2.9 KiB
C
Raw Normal View History

2020-04-26 21:55:11 +00:00
/*
limpador do luca0N! 3
Copyright (C) 2020 luca0N!
2020-04-26 21:55:11 +00:00
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
2020-04-26 21:55:11 +00:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
2020-04-26 21:55:11 +00:00
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
2020-04-26 21:55:11 +00:00
Contact me by e-mail via <mailto:luca0n@protonmail.com>
2020-04-26 21:55:11 +00:00
*/
#include "about.h"
#include "str.h"
// Because this program is currently target at Windows only, the use of ANSI colors are no longer used as of May 5, 2020.
// #include "colors.h"
2020-04-26 21:55:11 +00:00
#include <windows.h>
2020-05-11 16:35:29 +00:00
#include <tchar.h>
2020-04-26 21:55:11 +00:00
#include <stdio.h>
#include <string.h>
2020-04-26 21:55:11 +00:00
int printLicense(int full){
if (full == 0) {
2020-05-11 16:35:29 +00:00
printf("%s\n", LICENSE);
return 0;
} else {
FILE* flic = fopen("./LICENSE", "r");
if (flic == NULL){
printf("%s\n", STR_ERROR_LIC);
return -1;
}
char c;
while ((c = fgetc(flic)) != EOF) {
printf("%c", c);
}
}
2020-04-26 21:55:11 +00:00
}
void getAdditionalDirs(){
printf("%s\n", STR_FETCHING_ADD_DIRS);
int dirs;
dirs = GetPrivateProfileInt("Pastas", "Pastas", 3, ".\\cfg\\pastas.ini");
printf("%s %d\n", STR_DIR_COUNT, dirs);
fflush(stdout);
for(unsigned short x = 0; x < dirs; x++){
// TODO: Tell if item is a directory. If so, then iterate through all items on it.
char dirKey[7] = "Pasta";
char* intPtr = (x + 1) + '0';
strcat(dirKey, &intPtr);
_TCHAR currentPath[128];
GetPrivateProfileString("Pastas", dirKey, "null", currentPath,
sizeof(currentPath) / sizeof(currentPath[0]), ".\\cfg\\pastas.ini");
printf("%s [%s] %s\n", STR_FOUND_DIR, dirKey, currentPath);
cleanDir(currentPath);
}
2020-04-26 21:55:11 +00:00
}
void cleanDir(const char* path){
printf("%s %s\n", STR_CLEANING_DIR, path);
// Fetch files in dir
WIN32_FIND_DATA data;
HANDLE hFind = FindFirstFile(path, &data);
unsigned int iteration = 0;
if (hFind != INVALID_HANDLE_VALUE){
do{
// Ignore pseudo dirs (. and ..)
iteration++;
if (iteration <= 2)
continue;
printf("%s %s\n", STR_FOUND_ITEM, data.cFileName);
} while(FindNextFile(hFind, &data));
} else {
printf("%s\n", STR_FAILED_DIR_LIST);
}
2020-04-26 21:55:11 +00:00
}
int main(void){
SetConsoleOutputCP(CP_UTF8);
printLicense(0);
2020-04-26 21:55:11 +00:00
printf("--------------------\n%s %d, %s\n", PROGRAM_NAME, PROGRAM_SEASON, PROGRAM_VERSION);
printf("%s\n--------------------\n\n", PROGRAM_COPYRIGHT);
2020-04-26 21:55:11 +00:00
printf("%s\n", STR_USE_WARNING);
char in;
fflush(stdout);
2020-04-26 21:55:11 +00:00
scanf("%c", &in);
2020-04-26 21:55:11 +00:00
if (in == 'w' || in == 'c')
if (printLicense(1) != 0)
return 0;
2020-04-26 21:55:11 +00:00
if (in != 's' && in != 'S' && in != 'y' && in != 'Y')
return 0;
getAdditionalDirs();
return 0;
2020-04-26 21:55:11 +00:00
}