summaryrefslogtreecommitdiffstats
path: root/debian/opensync/opensync-0.22/tools/osyncdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'debian/opensync/opensync-0.22/tools/osyncdump.c')
-rw-r--r--debian/opensync/opensync-0.22/tools/osyncdump.c241
1 files changed, 0 insertions, 241 deletions
diff --git a/debian/opensync/opensync-0.22/tools/osyncdump.c b/debian/opensync/opensync-0.22/tools/osyncdump.c
deleted file mode 100644
index 423f1827..00000000
--- a/debian/opensync/opensync-0.22/tools/osyncdump.c
+++ /dev/null
@@ -1,241 +0,0 @@
-#include <opensync/opensync.h>
-#include <opensync/opensync_internals.h>
-#include <osengine/engine.h>
-#include <osengine/engine_internals.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sqlite3.h>
-
-static void usage (char *name, int ecode)
-{
- fprintf (stderr, "Usage: %s <groupname>\n", name);
- fprintf (stderr, "[--mappings] \tDump all mappings. Default\n");
- fprintf (stderr, "[--hash <memberid>] \tDump hash table for member id\n");
- fprintf (stderr, "[--unmapped] \tAlso dumps changes which are unmapped\n");
- fprintf (stderr, "[--configdir] \tSet a different configdir then ~./opensync\n");
- fprintf (stderr, "[--reset] \tReset the database for this group\n");
- exit(ecode);
-}
-
-typedef enum {
- DUMPMAPS = 1,
- DUMPHASH = 2,
- DUMPUNMAPPED = 3,
- RESET = 4
-} ToolAction;
-
-static void dump_map(OSyncEnv *osync, char *groupname)
-{
- OSyncGroup *group = osync_env_find_group(osync, groupname);
-
- if (!group) {
- printf("Unable to find group with name \"%s\"\n", groupname);
- return;
- }
-
-
- OSyncChange **changes = NULL;
- OSyncError *error = NULL;
- if (!osync_changes_load(group, &changes, &error)) {
- printf("Unable to load changes: %s\n", osync_error_print(&error));
- return;
- }
-
- int i = 0;
- OSyncChange *change = NULL;
- while ((change = changes[i])) {
- OSyncMember *member = osync_change_get_member(change);
- int memberid = 0;
- if (member)
- memberid = osync_member_get_id(member);
- const char *formatname = NULL;
- if (osync_change_get_objformat(change))
- formatname = osync_objformat_get_name(osync_change_get_objformat(change));
- const char *objname = NULL;
- if (osync_change_get_objtype(change))
- objname = osync_objtype_get_name(osync_change_get_objtype(change));
- printf("ID: %lli UID: %s MEMBER: %i\n\tOBJTYPE: %s OBJFORMAT: %s MAPPINGID: %lli\n", osync_change_get_id(change), osync_change_get_uid(change), memberid, objname, formatname, osync_change_get_mappingid(change));
- i++;
- }
-
- osync_changes_close(group);
-}
-
-static void dump_unmapped(OSyncEnv *osync, char *groupname)
-{
- OSyncGroup *group = osync_env_find_group(osync, groupname);
-
- if (!group) {
- printf("Unable to find group with name \"%s\"\n", groupname);
- return;
- }
-
- char *filename = g_strdup_printf("%s/change.db", osync_group_get_configdir(group));
- OSyncDB *db = osync_db_open(filename, NULL);
- g_free(filename);
-
- sqlite3 *sdb = db->db;
-
- sqlite3_stmt *ppStmt = NULL;
- sqlite3_prepare(sdb, "SELECT id, uid, objtype, format, memberid FROM tbl_changes WHERE mappingid=0", -1, &ppStmt, NULL);
- while (sqlite3_step(ppStmt) == SQLITE_ROW) {
- long long int entryid = sqlite3_column_int64(ppStmt, 0);
- char *uid = g_strdup((gchar*)sqlite3_column_text(ppStmt, 1));
- char *objtype = g_strdup((gchar*)sqlite3_column_text(ppStmt, 2));
- char *objformat = g_strdup((gchar*)sqlite3_column_text(ppStmt, 3));
- long long int memberid = sqlite3_column_int64(ppStmt, 4);
-
- printf("ID: %lli UID: %s MEMBER: %lli, TYPE %s, FORMAT %s\n", entryid, uid, memberid, objtype, objformat);
- }
- sqlite3_finalize(ppStmt);
-
- osync_db_close(db);
-
-
- /*
-
- OSyncMappingTable *table = osync_mappingtable_new(group);
- char *entrydb = g_strdup_printf("%s/change.db", osync_group_get_configdir(group)); //FIXME!!!
- DB *entrytable = osync_db_open(entrydb, "Entries", DB_BTREE, NULL);
- g_free(entrydb);
- if (!entrytable) {
- printf("Unable to open change database\n");
- return;
- }
-
- DBC *dbcp = osync_db_cursor_new(entrytable);
-
- void *entryid;
- void *data;
-
- OSyncChange *change = NULL;
-
- while (osync_db_cursor_next(dbcp, &entryid, &data)) {
- change = osync_change_new();
- osync_change_unmarshal(table, change, data);
-
- }
- osync_db_cursor_close(dbcp);
-
- osync_db_close(entrytable);*/
-}
-
-static void dump_hash(OSyncEnv *osync, char *groupname, char *memberid)
-{
- long long int id = atoi(memberid);
- OSyncGroup *group = osync_env_find_group(osync, groupname);
-
- if (!group) {
- printf("Unable to find group with name %s\n", groupname);
- return;
- }
-
- OSyncMember *member = osync_member_from_id(group, id);
- if (!member) {
- printf("Unable to find member with id %s\n", memberid);
- return;
- }
-
- OSyncHashTable *table = osync_hashtable_new();
- osync_db_open_hashtable(table, member, NULL);
-
- sqlite3 *sdb = table->dbhandle->db;
-
- sqlite3_stmt *ppStmt = NULL;
- sqlite3_prepare(sdb, "SELECT uid, hash FROM tbl_hash", -1, &ppStmt, NULL);
- while (sqlite3_step(ppStmt) == SQLITE_ROW) {
- char *uid = g_strdup((gchar*)sqlite3_column_text(ppStmt, 0));
- char *hash = g_strdup((gchar*)sqlite3_column_text(ppStmt, 1));
- printf("UID: %s HASH: %s\n", uid, hash);
- }
- sqlite3_finalize(ppStmt);
-
- osync_db_close_hashtable(table);
-}
-
-static void reset(OSyncEnv *osync, char *groupname)
-{
- OSyncGroup *group = osync_env_find_group(osync, groupname);
-
- if (!group) {
- printf("Unable to find group with name \"%s\"\n", groupname);
- return;
- }
-
- osync_group_reset(group);
-}
-
-int main (int argc, char *argv[])
-{
- int i;
- char *groupname = NULL;
- char *membername = NULL;
- ToolAction action = DUMPMAPS;
- char *configdir = NULL;
-
- if (argc == 1)
- usage (argv[0], 1);
-
- groupname = argv[1];
- for (i = 2; i < argc; i++) {
- char *arg = argv[i];
- if (!strcmp (arg, "--mappings")) {
- action = DUMPMAPS;
- } else if (!strcmp (arg, "--hash")) {
- action = DUMPHASH;
- membername = argv[i + 1];
- i++;
- if (!membername)
- usage (argv[0], 1);
- } else if (!strcmp (arg, "--reset")) {
- action = RESET;
- } else if (!strcmp (arg, "--unmapped")) {
- action = DUMPUNMAPPED;
- } else if (!strcmp (arg, "--help")) {
- usage (argv[0], 0);
- } else if (!strcmp (arg, "--configdir")) {
- configdir = argv[i + 1];
- i++;
- if (!configdir)
- usage (argv[0], 1);
- } else if (!strcmp (arg, "--")) {
- break;
- } else if (arg[0] == '-') {
- usage (argv[0], 1);
- } else {
- usage (argv[0], 1);
- }
- }
-
- OSyncEnv *osync = osync_env_new();
- osync_env_set_option(osync, "GROUPS_DIRECTORY", configdir);
-
- OSyncError *error = NULL;
- if (!osync_env_initialize(osync, &error)) {
- printf("Unable to initialize environment: %s\n", error->message);
- osync_error_free(&error);
- return 1;
- }
-
- switch (action) {
- case DUMPMAPS:
- dump_map(osync, groupname);
- break;
- case DUMPHASH:
- dump_hash(osync, groupname, membername);
- break;
- case DUMPUNMAPPED:
- dump_unmapped(osync, groupname);
- break;
- case RESET:
- reset(osync, groupname);
- break;
- default:
- printf("error\n");
- }
-
- return 0;
-}