From 54cf7074e855df5255161200fb944c11c837a7c2 Mon Sep 17 00:00:00 2001 From: "Phyks (Lucas Verney)" Date: Mon, 9 May 2016 16:13:42 +0200 Subject: [PATCH] Add a version readings args instead of MPD library --- CMakeLists.txt | 13 ++++++++-- main_args.c | 51 +++++++++++++++++++++++++++++++++++++++ src/main.c => main_mpd.c | 6 +++++ src/.main.c.swp | Bin 20480 -> 0 bytes 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 main_args.c rename src/main.c => main_mpd.c (97%) delete mode 100644 src/.main.c.swp diff --git a/CMakeLists.txt b/CMakeLists.txt index b0f7d17..49a7ad3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project (MPDBliss C) add_subdirectory (bliss) -file (GLOB MPDBLISS_SRC "src/*.c") +file (GLOB COMMON_SRC "src/*.c") # TODO \/ find_package(PkgConfig REQUIRED) @@ -23,10 +23,19 @@ add_definitions (-Wall -Wno-long-long -pedantic -std=c99) # TODO /\ add_executable (mpdbliss - ${MPDBLISS_SRC}) + ${COMMON_SRC} "main_mpd.c") target_link_libraries (mpdbliss m sqlite3 mpdclient bliss) + + +add_executable (argsbliss + ${COMMON_SRC} "main_args.c") + +target_link_libraries (argsbliss + m + sqlite3 + bliss) diff --git a/main_args.c b/main_args.c new file mode 100644 index 0000000..235821c --- /dev/null +++ b/main_args.c @@ -0,0 +1,51 @@ +#include +#include +#include + +#include + +#include "analysis.h" +#include "utilities.h" + +// TODO: Handle deletions from db + + +int main(int argc, char** argv) { + if (argc < 3) { + printf("Usage: %s basepath [relative_filenames].\n", argv[0]); + return EXIT_SUCCESS; + } + + // Get data directory, init db file + char mpdbliss_data_folder[DEFAULT_STRING_LENGTH] = ""; + char mpdbliss_data_db[DEFAULT_STRING_LENGTH] = ""; + if (0 != _init_db(mpdbliss_data_folder, mpdbliss_data_db)) { + exit(EXIT_FAILURE); + } + + const char *base_path = argv[1]; + + // Connect to SQLite db + sqlite3 *dbh; + if (0 != sqlite3_open(mpdbliss_data_db, &dbh)) { + fprintf(stderr, "Unable to open SQLite db.\n"); + exit(EXIT_FAILURE); + } + int dberr = sqlite3_exec(dbh, "PRAGMA foreign_keys = ON", NULL, NULL, NULL); + if (SQLITE_OK != dberr) { + fprintf(stderr, "Unable to open SQLite db.\n"); + sqlite3_close(dbh); + exit(EXIT_FAILURE); + } + + for (int i = 2; i < argc; ++i) { + _parse_music_helper(dbh, base_path, argv[i]); + } + + // Close SQLite connection + sqlite3_close(dbh); + + printf("Done! :)\n"); + + return EXIT_SUCCESS; +} diff --git a/src/main.c b/main_mpd.c similarity index 97% rename from src/main.c rename to main_mpd.c index a051163..a1c7452 100644 --- a/src/main.c +++ b/main_mpd.c @@ -76,6 +76,12 @@ long int update_database( fprintf(stderr, "Unable to open SQLite db.\n"); return -1; } + int dberr = sqlite3_exec(dbh, "PRAGMA foreign_keys = ON", NULL, NULL, NULL); + if (SQLITE_OK != dberr) { + fprintf(stderr, "Unable to open SQLite db.\n"); + sqlite3_close(dbh); + exit(EXIT_FAILURE); + } // Retrieve the received list in memory, to prevent timeout struct mpd_entity **entities = malloc(sizeof(struct mpd_entity *) * n_songs); diff --git a/src/.main.c.swp b/src/.main.c.swp deleted file mode 100644 index 377d244ba6b26844004dd3f40b6eed49c4ca2e37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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