aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/main.c b/src/main.c
index b39d9c2..34dbb61 100644
--- a/src/main.c
+++ b/src/main.c
@@ -188,6 +188,7 @@ static void ftag_file_get_path(char *out, int size, const char *file)
static void ftag_export(int argc, char **argv)
{
+ /* TODO: use getopt here */
while ((argc > 0) && (argv[0][0] == '-')) {
switch (argv[0][1]) {
case 'h':
@@ -201,11 +202,11 @@ static void ftag_export(int argc, char **argv)
argc--;
}
- if (argc != 1) {
+ if (argc != 2) {
ftag_export_help();
exit(EXIT_FAILURE);
}
- char *archive_dir = argv[0];
+ char *archive_dir = argv[1];
char archive_file[64];
strbuild(archive_file, "%s%s", archive_dir, ".tar.gz");
@@ -503,6 +504,7 @@ static void ftag_file_add(int argc, char **argv)
int interactive = 0;
int eliminate_duplicates = 1;
int encrypt = 1;
+ /* TODO: use getopt here */
while ((argc > 0) && (argv[0][0] == '-')) {
switch (argv[0][1]) {
case 'c':
@@ -525,7 +527,7 @@ static void ftag_file_add(int argc, char **argv)
argc--;
}
- if (argc == 0) {
+ if (argc == 1) {
ftag_file_add_usage();
exit(EXIT_FAILURE);
}
@@ -535,7 +537,7 @@ static void ftag_file_add(int argc, char **argv)
uint32_t *sums = malloc(argc*sizeof(*sums));
struct stat st;
int rc;
- for (int i = 0; i < argc; i++) {
+ for (int i = 1; i < argc; i++) {
char *file = argv[i];
rc = stat(file, &st);
if (rc == -1) {
@@ -656,18 +658,18 @@ get_id_by_col(sqlite3 *db, const char *table, const char *col, const char *val)
static void ftag_file_tag(int argc, char **argv)
{
- if (argc < 2) {
+ if (argc < 3) {
fprintf(stderr, "Usage: ftag file tag FILE TAG...\n");
exit(EXIT_FAILURE);
}
- const char *file = argv[0];
+ const char *file = argv[1];
char sql[64];
sqlite3 *db;
int rc;
db = ftag_db_open();
int file_id = get_id_by_col(db, "files", "canonical_name", file);
printf("%s: debug: file id is %d\n", __func__, file_id);
- for (int i = 1; i < argc; i++) {
+ for (int i = 2; i < argc; i++) {
int tag_id = get_id_by_col(db, "tags", "name", argv[i]);
printf("%s: debug: tag id is %d\n", __func__, tag_id);
strbuild(sql, "INSERT INTO file_tags values(%d, %d);",
@@ -785,7 +787,7 @@ static void ftag_query_join(sqlite3 *db,
static void ftag_query(int argc, char **argv)
{
- if (argc == 0) {
+ if (argc == 1) {
ftag_query_usage();
exit(EXIT_FAILURE);
}
@@ -793,6 +795,7 @@ static void ftag_query(int argc, char **argv)
time_t before_date __attribute__((unused)) = 0;
char **tags = NULL;
int tag_count = 0;
+ /* TODO: use getopt here */
while (argc > 0) {
if (strcmp(argv[0], "-a") == 0) {
assert(argc >= 2);
@@ -950,7 +953,7 @@ static void ftag_sync_push(int, char **)
static void ftag_sync(int argc, char **argv)
{
- if (argc == 0) {
+ if (argc == 1) {
ftag_sync_usage();
exit(EXIT_FAILURE);
}
@@ -973,18 +976,18 @@ ftag_tag_shall_exist_callback(void *_shall_exist, int, char **cols, char **)
assert(cols[0]);
if (!shall_exist) {
fprintf(stderr,
- "ftag: error: entry \"%s\" already exists", cols[0]);
+ "ftag: error: entry \"%s\" already exists\n", cols[0]);
}
return !shall_exist;
}
static void ftag_tag_add(int argc, char **argv)
{
- if (argc != 2) {
+ if (argc != 3) {
fprintf(stderr, "Usage: ftag tag add NAME DESCRIPTION\n");
exit(EXIT_FAILURE);
}
- char *new_tag_name = strdup(argv[0]);
+ char *new_tag_name = strdup(argv[1]);
assert(strlen(new_tag_name) <= 255);
sanitize_sql_str(&new_tag_name);
@@ -1001,7 +1004,7 @@ static void ftag_tag_add(int argc, char **argv)
sqlite3_check(rc, db);
int next_id = table_next_id(db, "tags");
- char *new_tag_desc = strdup(argv[1]);
+ char *new_tag_desc = strdup(argv[2]);
assert(strlen(new_tag_desc) <= 600);
sanitize_sql_str(&new_tag_desc);
strbuild(sql, "INSERT INTO tags VALUES(%d, '%s', '%s');",
@@ -1024,7 +1027,7 @@ static int tag_edit_desc_callback(void *_old, int, char **cols, char **)
static void ftag_tag_edit(int argc, char **argv)
{
- if (argc < 1) {
+ if (argc == 1) {
fprintf(stderr, "Usage: ftag tag edit [-h] [-n] NAME...\n");
exit(EXIT_FAILURE);
}
@@ -1054,8 +1057,8 @@ static void ftag_tag_edit(int argc, char **argv)
}
}
tag_name = argv[optind];
- /* TODO: check that tag exists */
db = ftag_db_open();
+ /* TODO: check that tag exists */
if (edit_name) {
column_name = "name";
old = strdup(tag_name);