]> git.ozlabs.org Git - ccan/blobdiff - tools/_infotojson/infotojson.c
Remove _infotojson (unused for now)
[ccan] / tools / _infotojson / infotojson.c
diff --git a/tools/_infotojson/infotojson.c b/tools/_infotojson/infotojson.c
deleted file mode 100644 (file)
index e837ff4..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/* This extract info from _info.c and create json file and also optionally store to db */
-#include "infotojson.h"
-
-/*creating json structure for storing to file/db*/
-static struct json *createjson(char **infofile, const char *author, const char *directory)
-{
-       struct json *jsonobj;
-       unsigned int modulename;
-
-       if (infofile == NULL || author == NULL) {
-               printf("Error Author or Info file is NULL\n");
-               exit(1);
-       }
-
-        jsonobj = talloc(NULL, struct json);
-        if (!jsonobj)
-               errx(1, "talloc error");
-               
-       jsonobj->author = talloc_strdup(jsonobj, author);
-
-        /* First line should be module name and short description */
-       modulename =  strchr(infofile[0], '-') - infofile[0];
-       
-       jsonobj->module = talloc_strndup(jsonobj, infofile[0], modulename - 1);
-        if (!jsonobj->module)
-               errx(1, "talloc error");
-               
-       jsonobj->title = infofile[0];
-       jsonobj->desc = &infofile[1];
-       jsonobj->depends = get_deps(jsonobj, directory);
-       return jsonobj;
-}
-
-/*extracting title and description from _info.c files*/
-static char **extractinfo(char **file)
-{
-       char **infofile;
-       unsigned int count = 0, j = 0, num_lines = 0;
-       bool printing = false;
-       
-       while (file[num_lines++]);
-       infofile = talloc_array(NULL, char *, num_lines);
-       
-       for (j = 0; j < num_lines - 1; j++) {
-               if (streq(file[j], "/**")) {
-                       printing = true;
-               } 
-               else if (streq(file[j], " */"))
-                       printing = false;
-               else if (printing) {
-                       if (strstarts(file[j], " * "))
-                               infofile[count++] = file[j] + 3;
-                       else if (strstarts(file[j], " *"))
-                               infofile[count++] = file[j] + 2;
-                       else {
-                               err(1,"Error in comments structure\n%d",j);
-                               exit(1);
-                       }
-               }
-       }
-       infofile[count] = NULL;
-       return infofile;        
-}
-
-/*storing json structure to json file*/
-static int storejsontofile(const struct json *jsonobj, const char *file)
-{
-       FILE *fp;
-       unsigned int j = 0;
-       fp = fopen(file, "wt");
-       fprintf(fp,"\"Module\":\"%s\",\n",jsonobj->module);
-       fprintf(fp,"\"Title\":\"%s\",\n",jsonobj->title);
-       fprintf(fp,"\"Author\":\"%s\",\n",jsonobj->author);
-
-       fprintf(fp,"\"Dependencies\":[\n");     
-       for (j = 0; jsonobj->depends[j]; j++)
-               fprintf(fp,"{\n\"depends\":\"%s\"\n},\n",jsonobj->depends[j]);
-       fprintf(fp,"]\n");
-
-
-       fprintf(fp,"\"Description\":[\n");      
-       for (j = 0; jsonobj->desc[j]; j++)
-               fprintf(fp,"{\n\"str\":\"%s\"\n},\n",jsonobj->desc[j]);
-       fprintf(fp,"]\n");
-       fclose(fp);
-       return 1;
-}
-
-/*storing json structure to db*/
-static int storejsontodb(const struct json *jsonobj, const char *db)
-{
-       char *cmd, *query, *desc, *depends;
-       sqlite3 *handle;
-       struct db_query *q;
-       
-       handle = db_open(db);
-       query = talloc_asprintf(NULL, "SELECT module, author from search where module=\"%s\";", jsonobj->module);
-       q = db_query(handle, query);
-       
-       desc = strjoin(NULL, jsonobj->desc,"\n");
-       strreplace(desc, '\'', ' ');
-
-       depends = strjoin(NULL, jsonobj->depends,"\n");
-       if (q->num_rows && streq(jsonobj->author, q->rows[0][1]))               
-               cmd = talloc_asprintf(NULL, "UPDATE search set author=\"%s\", title=\"%s\", desc=\'%s\' depends=\'%s\' where module=\"%s\";",
-                       jsonobj->author, jsonobj->title, desc, depends, jsonobj->module);
-       else if (!q->num_rows)
-               cmd = talloc_asprintf(NULL, "INSERT INTO search VALUES(\"%s\",\"%s\",\"%s\", \'%s\', \'%s\', 0);",
-                       jsonobj->module, jsonobj->author, jsonobj->title, depends, desc);
-       else
-               cmd = talloc_asprintf(NULL, "INSERT INTO search VALUES(\"%s-%s\",\"%s\",\"%s\", \'%s\', \'%s\', 0);",
-                       jsonobj->module, jsonobj->author, jsonobj->author, jsonobj->title, depends, desc);
-               
-       db_command(handle, cmd);        
-       db_close(handle);
-       talloc_free(depends);
-       talloc_free(query);
-       talloc_free(desc);
-       talloc_free(cmd);
-       return 1;
-}
-
-int main(int argc, char *argv[])
-{
-       char *file;
-       char **lines;
-       char **infofile;
-       struct json *jsonobj;
-       
-       talloc_enable_leak_report();
-       if (argc < 5)
-               errx(1, "usage: infotojson dir_of_module info_filename target_json_file author [sqlitedb]\n"
-                                "Convert _info.c file to json file and optionally store to database");
-               
-       file = grab_file(NULL, argv[2], NULL);
-       if (!file)
-               err(1, "Reading file %s", argv[2]);
-
-       lines = strsplit(NULL, file, "\n", NULL);               
-       
-       //extract info from lines
-       infofile = extractinfo(lines);
-       
-       //create json obj
-       jsonobj = createjson(infofile, argv[4], argv[1]);
-       
-       //store to file
-       storejsontofile(jsonobj, argv[3]);
-       
-       if (argv[5] != NULL)
-               storejsontodb(jsonobj, argv[5]);
-               
-       talloc_free(file);
-       talloc_free(jsonobj);
-       talloc_free(lines);
-       talloc_free(infofile);  
-       return 0;
-}