#include #include #include "lib.h" int main(int argc, char **argv) { (void)argv; debug = argc > 1; if (check_for_backupignore()) return 1; debugf(".backupignore found\n"); struct tmp_repo repo = tmp_repo_init(); assert(repo.repo != NULL); debugf("%s initialized\n", repo.path); copy_over_backupignore(repo); debugf("ignore file loaded\n"); char *cwd = getcwd(NULL, 0); assert(cwd != NULL); struct backup_streamer streamer = backup_streamer_init(cwd); free(cwd); struct recursive_reader reader = recursive_reader_init(); while (recursive_reader_read(&reader) != -1) { if (is_ignored(repo, reader.line)) continue; if (is_dir(reader.line)) continue; get_backup_destination(&streamer, reader.line); debugf("cp %s %s\n", reader.line, streamer.cursor); backup_file(reader.line, streamer.cursor); } recursive_reader_deinit(reader); tmp_repo_deinit(repo); git_repository_free(repo.repo); git_libgit2_shutdown(); return 0; } #include "tmp_repo.c" #include "recursive_reader.c" #include "backup_streamer.c"