Add file moving.
This commit is contained in:
parent
138620553f
commit
30c1976155
52
src/main.c
52
src/main.c
|
@ -21,6 +21,7 @@ static int inotify_instance = -1;
|
||||||
static char event_buffer[EVENT_BUF_LEN];
|
static char event_buffer[EVENT_BUF_LEN];
|
||||||
static int watch_list;
|
static int watch_list;
|
||||||
|
|
||||||
|
char *strrev(char *str);
|
||||||
char *get_directory(const char *param);
|
char *get_directory(const char *param);
|
||||||
char *get_extension(const char *name);
|
char *get_extension(const char *name);
|
||||||
void move(const char *name);
|
void move(const char *name);
|
||||||
|
@ -68,6 +69,37 @@ int main(int argc, char *argv[])
|
||||||
close(inotify_instance);
|
close(inotify_instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void move(const char *name)
|
||||||
|
{
|
||||||
|
/* Get all variables needed */
|
||||||
|
char *ext = get_extension(name);
|
||||||
|
|
||||||
|
char *dest = (char *)malloc(4096 * sizeof(char));
|
||||||
|
sprintf(dest, "%s/%s/%s", documents_dir, ext, name);
|
||||||
|
char *src = (char *)malloc(4096 * sizeof(char));
|
||||||
|
sprintf(src, "%s/%s", downloads_dir, name);
|
||||||
|
char *org = (char *)malloc(4096 * sizeof(char));
|
||||||
|
sprintf(org, "%s/%s/", documents_dir, ext);
|
||||||
|
|
||||||
|
/* Ensure/Create directories for organization */
|
||||||
|
char *cmd = (char *)malloc(8096 * 2.5 * sizeof(char));
|
||||||
|
strcat(cmd, "mkdir --parents ");
|
||||||
|
strcat(cmd, org);
|
||||||
|
if (system(cmd))
|
||||||
|
perror("Failed to ensure/create directories!");
|
||||||
|
|
||||||
|
printf("Moving: %s Extension: %s\n", name, ext);
|
||||||
|
memset(cmd, 0, strlen(cmd));
|
||||||
|
strcat(cmd, "mv ");
|
||||||
|
strcat(cmd, src);
|
||||||
|
strcat(cmd, " ");
|
||||||
|
strcat(cmd, dest);
|
||||||
|
strcat(cmd, "\0");
|
||||||
|
printf("%s\n", cmd);
|
||||||
|
if (system(cmd))
|
||||||
|
perror("Failed to move file!");
|
||||||
|
}
|
||||||
|
|
||||||
char *get_extension(const char *name)
|
char *get_extension(const char *name)
|
||||||
{
|
{
|
||||||
char *ext = (char *)malloc(sizeof(char));
|
char *ext = (char *)malloc(sizeof(char));
|
||||||
|
@ -86,12 +118,6 @@ char *get_extension(const char *name)
|
||||||
return ext;
|
return ext;
|
||||||
}
|
}
|
||||||
|
|
||||||
void move(const char *name)
|
|
||||||
{
|
|
||||||
char *ext = get_extension(name);
|
|
||||||
printf("Moving: %s Extension: %s\n", name, ext);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *get_directory(const char *name)
|
char *get_directory(const char *name)
|
||||||
{
|
{
|
||||||
char *result = (char *)malloc(4096 * sizeof(char));
|
char *result = (char *)malloc(4096 * sizeof(char));
|
||||||
|
@ -130,3 +156,17 @@ char *get_directory(const char *name)
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *strrev(char *str)
|
||||||
|
{
|
||||||
|
char *p1, *p2;
|
||||||
|
|
||||||
|
if (!str || !*str)
|
||||||
|
return str;
|
||||||
|
for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2) {
|
||||||
|
*p1 ^= *p2;
|
||||||
|
*p2 ^= *p1;
|
||||||
|
*p1 ^= *p2;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue