Correctly parsing command line parameters for ipfs add
This commit is contained in:
parent
794608a7ea
commit
5d558f5229
2 changed files with 55 additions and 22 deletions
|
@ -145,7 +145,7 @@ void *ipfs_null_listen (void *ptr)
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
libp2p_logger_log("null", LOGLEVEL_ERROR, "Null listening on %d\n", listen_param->port);
|
libp2p_logger_log("null", LOGLEVEL_ERROR, "Ipfs listening on %d\n", listen_param->port);
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
s = socket_accept4(socketfd, &(listen_param->ipv4), &(listen_param->port));
|
s = socket_accept4(socketfd, &(listen_param->ipv4), &(listen_param->port));
|
||||||
|
|
|
@ -294,6 +294,58 @@ int ipfs_import_file(const char* root_dir, const char* fileName, struct Node** p
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pulls list of files from command line parameters
|
||||||
|
* @param argc number of command line parameters
|
||||||
|
* @param argv command line parameters
|
||||||
|
* @returns a FileList linked list of filenames
|
||||||
|
*/
|
||||||
|
struct FileList* ipfs_import_get_filelist(int argc, char** argv) {
|
||||||
|
struct FileList* first = NULL;
|
||||||
|
struct FileList* last = NULL;
|
||||||
|
int skipNext = 0;
|
||||||
|
|
||||||
|
for (int i = 2; i < argc; i++) {
|
||||||
|
if (skipNext) {
|
||||||
|
skipNext = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(argv[i], "-r") == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "--config") == 0) {
|
||||||
|
skipNext = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
struct FileList* current = (struct FileList*)malloc(sizeof(struct FileList));
|
||||||
|
current->next = NULL;
|
||||||
|
current->file_name = argv[i];
|
||||||
|
// now wire it in
|
||||||
|
if (first == NULL) {
|
||||||
|
first = current;
|
||||||
|
}
|
||||||
|
if (last != NULL) {
|
||||||
|
last->next = current;
|
||||||
|
}
|
||||||
|
// now set last to current
|
||||||
|
last = current;
|
||||||
|
}
|
||||||
|
return first;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* See if the recursive flag was passed on the command line
|
||||||
|
* @param argc number of command line parameters
|
||||||
|
* @param argv command line parameters
|
||||||
|
* @returns true(1) if -r was passed, false(0) otherwise
|
||||||
|
*/
|
||||||
|
int ipfs_import_is_recursive(int argc, char** argv) {
|
||||||
|
for(int i = 0; i < argc; i++) {
|
||||||
|
if (strcmp(argv[i], "-r") == 0)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* called from the command line to import multiple files or directories
|
* called from the command line to import multiple files or directories
|
||||||
|
@ -308,29 +360,10 @@ int ipfs_import_files(int argc, char** argv) {
|
||||||
* param 3: directoryname
|
* param 3: directoryname
|
||||||
*/
|
*/
|
||||||
struct FSRepo* fs_repo = NULL;
|
struct FSRepo* fs_repo = NULL;
|
||||||
struct FileList* first = NULL;
|
int recursive = ipfs_import_is_recursive(argc, argv);
|
||||||
struct FileList* last = NULL;
|
|
||||||
int recursive = 0; // false
|
|
||||||
|
|
||||||
// parse the command line
|
// parse the command line
|
||||||
for (int i = 2; i < argc; i++) {
|
struct FileList* first = ipfs_import_get_filelist(argc, argv);
|
||||||
if (strcmp(argv[i], "-r") == 0) {
|
|
||||||
recursive = 1;
|
|
||||||
} else {
|
|
||||||
struct FileList* current = (struct FileList*)malloc(sizeof(struct FileList));
|
|
||||||
current->next = NULL;
|
|
||||||
current->file_name = argv[i];
|
|
||||||
// now wire it in
|
|
||||||
if (first == NULL) {
|
|
||||||
first = current;
|
|
||||||
}
|
|
||||||
if (last != NULL) {
|
|
||||||
last->next = current;
|
|
||||||
}
|
|
||||||
// now set last to current
|
|
||||||
last = current;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// open the repo
|
// open the repo
|
||||||
char* repo_path = NULL;
|
char* repo_path = NULL;
|
||||||
|
|
Loading…
Reference in a new issue