static void cmd_user( char *input ) { char *pass; if( ! *input ){ tty_msg( "missing username\n"); return; } if( NULL == ( pass = getpass("Password:"******"failed: %s\n", strerror(errno)); return; } if( duc_setauth( con, input, pass )){ tty_msg( "login failed\n" ); } else { duc_close(con); } }
static int index_main(duc *duc, int argc, char **argv) { duc_index_flags index_flags = 0; int open_flags = DUC_OPEN_RW | DUC_OPEN_COMPRESS; if(opt_force) open_flags |= DUC_OPEN_FORCE; if(opt_max_depth) duc_index_req_set_maxdepth(req, opt_max_depth); if(opt_one_file_system) index_flags |= DUC_INDEX_XDEV; if(opt_hide_file_names) index_flags |= DUC_INDEX_HIDE_FILE_NAMES; if(opt_check_hard_links) index_flags |= DUC_INDEX_CHECK_HARD_LINKS; if(opt_uncompressed) open_flags &= ~DUC_OPEN_COMPRESS; if(opt_progress) duc_index_req_set_progress_cb(req, progress_cb, NULL); if(argc < 1) { duc_log(duc, DUC_LOG_FTL, "Required index PATH missing."); return -2; } int r = duc_open(duc, opt_database, open_flags); if(r != DUC_OK) { duc_log(duc, DUC_LOG_FTL, "%s", duc_strerror(duc)); return -1; } /* Index all paths passed on the cmdline */ int i; for(i=0; i<argc; i++) { struct duc_index_report *report; report = duc_index(req, argv[i], index_flags); if(report == NULL) { duc_log(duc, DUC_LOG_WRN, "%s", duc_strerror(duc)); continue; } char siz_apparent[32], siz_actual[32]; duc_human_size(&report->size, DUC_SIZE_TYPE_APPARENT, opt_bytes, siz_apparent, sizeof siz_apparent); duc_human_size(&report->size, DUC_SIZE_TYPE_ACTUAL, opt_bytes, siz_actual, sizeof siz_actual); if(r == DUC_OK) { char dur[64]; duc_human_duration(report->time_start, report->time_stop, dur, sizeof dur); duc_log(duc, DUC_LOG_INF, "Indexed %zu files and %zu directories, (%sB apparent, %sB actual) in %s", report->file_count, report->dir_count, siz_apparent, siz_actual, dur); } else { duc_log(duc, DUC_LOG_WRN, "An error occured while indexing: %s", duc_strerror(duc)); } duc_index_report_free(report); } duc_close(duc); duc_index_req_free(req); return 0; }