int faup_tld_update(void) { char *tld_file; tld_file = faup_datadir_file_to_write("mozilla.tlds", false); if (tld_file) { faup_tld_download_mozilla_list(tld_file); free(tld_file); } else { return -1; } return 0; }
int faup_handle_shell_modules(int argc, char **argv) { if (argc < 5) { printf("Usage: %s $ modules action\n", argv[0]); printf("\nWhere action can be:\n"); printf("list all : List all modules\n"); printf("list enabled : List enabled modules\n"); printf("list available: List available modules\n\n"); printf("enable module_name : Enable the module 'module_name'\n"); printf("disable module_name: Disable the module 'module_name'\n"); printf("\n"); return -1; } if (!strcmp(argv[3], "list") || !strcmp(argv[3], "l")) { if (!strcmp(argv[4], "all")) { printf("Modules enabled:\n"); faup_modules_foreach_filelist(NULL, NULL, shell_modules_list_cb, NULL); printf("\n"); printf("Modules available:\n"); char *global_available = faup_datadir_get_global_file("modules_available"); faup_modules_foreach_filelist(NULL, global_available, shell_modules_list_cb, NULL); printf("\n"); free(global_available); } if (!strcmp(argv[4], "enabled")) { printf("\n"); faup_modules_foreach_filelist(NULL, NULL, shell_modules_list_cb, NULL); printf("\n"); } if (!strcmp(argv[4], "available")) { char *global_available = faup_datadir_get_global_file("modules_available"); printf("\n"); faup_modules_foreach_filelist(NULL, global_available, shell_modules_list_cb, NULL); printf("\n"); free(global_available); } } if (!strcmp(argv[3], "enable") || !strcmp(argv[3], "e")) { int retval; char *enabled_filename; char *symlink_file; char *origin_filename; char *available_filename; retval = asprintf(&enabled_filename, "modules_enabled%s%s", FAUP_OS_DIRSEP, argv[4]); symlink_file = faup_datadir_file_to_write(enabled_filename, true); free(enabled_filename); retval = asprintf(&origin_filename, "modules_available%s%s", FAUP_OS_DIRSEP, argv[4]); available_filename = faup_datadir_get_global_file(origin_filename); free(origin_filename); retval = symlink(available_filename, symlink_file); if (!retval) { printf("Module '%s' enabled with success!\n", argv[4]); } else { printf("Module '%s' cannot be enabled: %s\n", argv[4], strerror(errno)); } free(available_filename); free(symlink_file); } if (!strcmp(argv[3], "disable") || !strcmp(argv[3], "d")) { int retval; char *enabled_filename; char *symlink_file; retval = asprintf(&enabled_filename, "modules_enabled%s%s", FAUP_OS_DIRSEP, argv[4]); symlink_file = faup_datadir_get_file(enabled_filename, false); free(enabled_filename); retval = unlink(symlink_file); if (!retval) { printf("Module '%s' disabled with success!\n", argv[4]); } else { printf("Module '%s' cannot be deactivated: %s\n", argv[4], strerror(errno)); } free(symlink_file); } return 0; }