removing external library
This commit is contained in:
6
Makefile
6
Makefile
@@ -3,12 +3,10 @@ LDFLAGS := $(shell pkg-config --libs glib-2.0)
|
|||||||
HOME := $(HOME)
|
HOME := $(HOME)
|
||||||
|
|
||||||
task:
|
task:
|
||||||
gcc -c toybox.c -o toybox.o
|
gcc task.c $(CFLAGS) -o task $(LDFLAGS)
|
||||||
ar rcs libtoybox.a toybox.o
|
|
||||||
gcc task.c -L. -ltoybox $(CFLAGS) -o task $(LDFLAGS)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f task libtoybox.a toybox.o
|
rm -f task
|
||||||
|
|
||||||
install:
|
install:
|
||||||
mv task /usr/local/bin
|
mv task /usr/local/bin
|
||||||
|
|||||||
67
task.c
67
task.c
@@ -1,7 +1,11 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "toybox.h"
|
#include <unistd.h>
|
||||||
|
#include <pwd.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
|
||||||
// IDEAS
|
// IDEAS
|
||||||
// - Organização das tarefas por lista
|
// - Organização das tarefas por lista
|
||||||
@@ -18,6 +22,67 @@ char* CONFIG_DIR = ".config/task-cli";
|
|||||||
// files
|
// files
|
||||||
char* TASK_FILE = "task.txt";
|
char* TASK_FILE = "task.txt";
|
||||||
|
|
||||||
|
char* home()
|
||||||
|
{
|
||||||
|
struct passwd *u;
|
||||||
|
u = getpwuid(getuid());
|
||||||
|
|
||||||
|
if (!u) {
|
||||||
|
perror("invalid return of getpwuid() function.\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return u->pw_dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DIR_NAME deve ser o nome do diretório, não o caminho (ex: task)
|
||||||
|
// Se HOME = NULL, a função assume que a pasta que quer está fora da pasta /home/usuário
|
||||||
|
|
||||||
|
// Importante: essa função retorna um char*. Para abrir o diretório retornado, você deve usar
|
||||||
|
// a função opendir() com o valor retornado de get_dir()
|
||||||
|
char* get_dir(const char* HOME, const char* DIR_NAME) {
|
||||||
|
if (DIR_NAME[0] == '~') {
|
||||||
|
perror("get_dir doesn't expand '~'");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (DIR_NAME[0] == '/') {
|
||||||
|
perror("DIR_NAME can't begin with '/'");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *prefix = HOME ? HOME : "";
|
||||||
|
|
||||||
|
int size = strlen(prefix) + 1 + strlen(DIR_NAME) + 1;
|
||||||
|
char *DIR_FINAL = malloc(size);
|
||||||
|
if (!DIR_FINAL) {
|
||||||
|
perror("malloc failed");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(DIR_FINAL, "%s/%s", prefix, DIR_NAME);
|
||||||
|
|
||||||
|
DIR *dir = opendir(DIR_FINAL);
|
||||||
|
if (!dir) {
|
||||||
|
if (mkdir(DIR_FINAL, 0755) != 0) {
|
||||||
|
fprintf(stderr, "'%s' cannot be created\n", DIR_FINAL);
|
||||||
|
free(DIR_FINAL);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
closedir(dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
return DIR_FINAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
char* get_file(char* ROOT, char* FILE_NAME) {
|
||||||
|
char* FINAL_FILE;
|
||||||
|
|
||||||
|
FINAL_FILE = malloc(strlen(ROOT) + strlen(FILE_NAME) + 1);
|
||||||
|
sprintf(FINAL_FILE, "%s/%s", ROOT, FILE_NAME);
|
||||||
|
|
||||||
|
return FINAL_FILE;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
|||||||
70
toybox.c
70
toybox.c
@@ -1,70 +0,0 @@
|
|||||||
#include <unistd.h>
|
|
||||||
#include <pwd.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
char* home()
|
|
||||||
{
|
|
||||||
struct passwd *u;
|
|
||||||
u = getpwuid(getuid());
|
|
||||||
|
|
||||||
if (!u) {
|
|
||||||
perror("invalid return of getpwuid() function.\n");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return u->pw_dir;
|
|
||||||
}
|
|
||||||
|
|
||||||
// DIR_NAME deve ser o nome do diretório, não o caminho (ex: task)
|
|
||||||
// Se HOME = NULL, a função assume que a pasta que quer está fora da pasta /home/usuário
|
|
||||||
|
|
||||||
// Importante: essa função retorna um char*. Para abrir o diretório retornado, você deve usar
|
|
||||||
// a função opendir() com o valor retornado de get_dir()
|
|
||||||
char* get_dir(const char* HOME, const char* DIR_NAME) {
|
|
||||||
if (DIR_NAME[0] == '~') {
|
|
||||||
perror("get_dir doesn't expand '~'");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (DIR_NAME[0] == '/') {
|
|
||||||
perror("DIR_NAME can't begin with '/'");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *prefix = HOME ? HOME : "";
|
|
||||||
|
|
||||||
int size = strlen(prefix) + 1 + strlen(DIR_NAME) + 1;
|
|
||||||
char *DIR_FINAL = malloc(size);
|
|
||||||
if (!DIR_FINAL) {
|
|
||||||
perror("malloc failed");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
sprintf(DIR_FINAL, "%s/%s", prefix, DIR_NAME);
|
|
||||||
|
|
||||||
DIR *dir = opendir(DIR_FINAL);
|
|
||||||
if (!dir) {
|
|
||||||
if (mkdir(DIR_FINAL, 0755) != 0) {
|
|
||||||
fprintf(stderr, "'%s' cannot be created\n", DIR_FINAL);
|
|
||||||
free(DIR_FINAL);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
closedir(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
return DIR_FINAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
char* get_file(char* ROOT, char* FILE_NAME) {
|
|
||||||
char* FINAL_FILE;
|
|
||||||
|
|
||||||
FINAL_FILE = malloc(strlen(ROOT) + strlen(FILE_NAME) + 1);
|
|
||||||
sprintf(FINAL_FILE, "%s/%s", ROOT, FILE_NAME);
|
|
||||||
|
|
||||||
return FINAL_FILE;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user