1 |
commit: dd9b8dfe0752fd9422782312ba85b4229ee54722 |
2 |
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Dec 29 02:32:25 2016 +0000 |
4 |
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Dec 29 02:32:25 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=dd9b8dfe |
7 |
|
8 |
qtbz2: improve cli a bit |
9 |
|
10 |
Make -t/-x options autoselect the split action. |
11 |
Allow -d to be specified more than once. |
12 |
When given a bad -d path, diagnose it immediately. |
13 |
When we can't autodetect actions, show a specific error message. |
14 |
|
15 |
qtbz2.c | 11 +++++++---- |
16 |
1 file changed, 7 insertions(+), 4 deletions(-) |
17 |
|
18 |
diff --git a/qtbz2.c b/qtbz2.c |
19 |
index 3c2e9f0..2161f99 100644 |
20 |
--- a/qtbz2.c |
21 |
+++ b/qtbz2.c |
22 |
@@ -252,13 +252,15 @@ int qtbz2_main(int argc, char **argv) |
23 |
COMMON_GETOPTS_CASES(qtbz2) |
24 |
case 'j': action = TBZ2_ACT_JOIN; break; |
25 |
case 's': action = TBZ2_ACT_SPLIT; break; |
26 |
- case 't': split_xpak = 0; break; |
27 |
- case 'x': split_tarbz2 = 0; break; |
28 |
+ case 't': action = TBZ2_ACT_SPLIT; split_xpak = 0; break; |
29 |
+ case 'x': action = TBZ2_ACT_SPLIT; split_tarbz2 = 0; break; |
30 |
case 'O': tbz2_stdout = 1; break; |
31 |
case 'd': |
32 |
if (dir_fd != AT_FDCWD) |
33 |
- err("Only use -d once"); |
34 |
+ close(dir_fd); |
35 |
dir_fd = open(optarg, O_RDONLY|O_CLOEXEC|O_PATH); |
36 |
+ if (unlikely(dir_fd == -1)) |
37 |
+ errp("could not open dir: %s", optarg); |
38 |
break; |
39 |
} |
40 |
} |
41 |
@@ -279,7 +281,8 @@ int qtbz2_main(int argc, char **argv) |
42 |
else if (strstr(argv[optind], ".tbz2") != NULL) |
43 |
action = TBZ2_ACT_SPLIT; |
44 |
else |
45 |
- qtbz2_usage(EXIT_FAILURE); |
46 |
+ err("%s: need to use -j or -s, or file must end in .tar.bz2 or .tbz2 to autodetect", |
47 |
+ argv[optind]); |
48 |
} |
49 |
|
50 |
/* tbz2tool join .tar.bz2 .xpak .tbz2 */ |