Commit 482b3066 authored by Ruslan Kuprieiev's avatar Ruslan Kuprieiev Committed by Pavel Emelyanov

crtools: chdir to work directory

Signed-off-by: 's avatarRuslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent dc80d6f1
...@@ -78,6 +78,8 @@ int main(int argc, char *argv[]) ...@@ -78,6 +78,8 @@ int main(int argc, char *argv[])
int ret = -1; int ret = -1;
int opt, idx; int opt, idx;
int log_level = 0; int log_level = 0;
char *imgs_dir = ".";
char *work_dir = NULL;
BUILD_BUG_ON(PAGE_SIZE != PAGE_IMAGE_SIZE); BUILD_BUG_ON(PAGE_SIZE != PAGE_IMAGE_SIZE);
...@@ -163,13 +165,10 @@ int main(int argc, char *argv[]) ...@@ -163,13 +165,10 @@ int main(int argc, char *argv[])
opts.restore_detach = true; opts.restore_detach = true;
break; break;
case 'D': case 'D':
if (chdir(optarg)) { imgs_dir = optarg;
pr_perror("Can't change directory to %s",
optarg);
return -1;
}
break; break;
case 'W': case 'W':
work_dir = optarg;
break; break;
case 'o': case 'o':
opts.output = optarg; opts.output = optarg;
...@@ -283,6 +282,9 @@ int main(int argc, char *argv[]) ...@@ -283,6 +282,9 @@ int main(int argc, char *argv[])
} }
} }
if (work_dir == NULL)
work_dir = imgs_dir;
log_set_loglevel(log_level); log_set_loglevel(log_level);
if (log_init(opts.output)) if (log_init(opts.output))
...@@ -291,15 +293,23 @@ int main(int argc, char *argv[]) ...@@ -291,15 +293,23 @@ int main(int argc, char *argv[])
if (opts.img_parent) if (opts.img_parent)
pr_info("Will do snapshot from %s\n", opts.img_parent); pr_info("Will do snapshot from %s\n", opts.img_parent);
ret = open_image_dir(".");
if (ret < 0) {
pr_perror("Can't open current directory");
return -1;
}
if (optind >= argc) if (optind >= argc)
goto usage; goto usage;
/* We must not open imgs dir, if service is called */
if (strcmp(argv[optind], "service")) {
ret = open_image_dir(imgs_dir);
if (ret < 0) {
pr_perror("Can't open imgs directory");
return -1;
}
}
if (chdir(work_dir)) {
pr_perror("Can't change directory to %s", work_dir);
return -1;
}
if (!strcmp(argv[optind], "dump")) { if (!strcmp(argv[optind], "dump")) {
if (!tree_id) if (!tree_id)
goto opt_pid_missing; goto opt_pid_missing;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment