diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-04-12 14:16:29 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-04-12 14:16:29 +0200 |
commit | 0cecbe7d5de237a6c699c67ae53ae2e2481eff43 (patch) | |
tree | a775f19e4b5739d688c56f633584728718e2ae40 /debianutils | |
parent | 783d57af7bb2b851c16cf87df848e0365e5052da (diff) | |
download | busybox-w32-0cecbe7d5de237a6c699c67ae53ae2e2481eff43.tar.gz busybox-w32-0cecbe7d5de237a6c699c67ae53ae2e2481eff43.tar.bz2 busybox-w32-0cecbe7d5de237a6c699c67ae53ae2e2481eff43.zip |
Sort more misplaced applets into coreutils or util-linux
No code changes
Surprisingly, nice and renice are coming from different packages :)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'debianutils')
-rw-r--r-- | debianutils/mktemp.c | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c deleted file mode 100644 index 65353697a..000000000 --- a/debianutils/mktemp.c +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Mini mktemp implementation for busybox | ||
4 | * | ||
5 | * | ||
6 | * Copyright (C) 2000 by Daniel Jacobowitz | ||
7 | * Written by Daniel Jacobowitz <dan@debian.org> | ||
8 | * | ||
9 | * Licensed under GPLv2 or later, see file LICENSE in this source tree. | ||
10 | */ | ||
11 | |||
12 | /* Coreutils 6.12 man page says: | ||
13 | * mktemp [OPTION]... [TEMPLATE] | ||
14 | * Create a temporary file or directory, safely, and print its name. If | ||
15 | * TEMPLATE is not specified, use tmp.XXXXXXXXXX. | ||
16 | * -d, --directory | ||
17 | * create a directory, not a file | ||
18 | * -q, --quiet | ||
19 | * suppress diagnostics about file/dir-creation failure | ||
20 | * -u, --dry-run | ||
21 | * do not create anything; merely print a name (unsafe) | ||
22 | * --tmpdir[=DIR] | ||
23 | * interpret TEMPLATE relative to DIR. If DIR is not specified, | ||
24 | * use $TMPDIR if set, else /tmp. With this option, TEMPLATE must | ||
25 | * not be an absolute name. Unlike with -t, TEMPLATE may contain | ||
26 | * slashes, but even here, mktemp still creates only the final com- | ||
27 | * ponent. | ||
28 | * -p DIR use DIR as a prefix; implies -t [deprecated] | ||
29 | * -t interpret TEMPLATE as a single file name component, relative to | ||
30 | * a directory: $TMPDIR, if set; else the directory specified via | ||
31 | * -p; else /tmp [deprecated] | ||
32 | */ | ||
33 | //config:config MKTEMP | ||
34 | //config: bool "mktemp" | ||
35 | //config: default y | ||
36 | //config: help | ||
37 | //config: mktemp is used to create unique temporary files | ||
38 | |||
39 | //applet:IF_MKTEMP(APPLET(mktemp, BB_DIR_BIN, BB_SUID_DROP)) | ||
40 | |||
41 | //kbuild:lib-$(CONFIG_MKTEMP) += mktemp.o | ||
42 | |||
43 | //usage:#define mktemp_trivial_usage | ||
44 | //usage: "[-dt] [-p DIR] [TEMPLATE]" | ||
45 | //usage:#define mktemp_full_usage "\n\n" | ||
46 | //usage: "Create a temporary file with name based on TEMPLATE and print its name.\n" | ||
47 | //usage: "TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX).\n" | ||
48 | //usage: "Without TEMPLATE, -t tmp.XXXXXX is assumed.\n" | ||
49 | //usage: "\n -d Make directory, not file" | ||
50 | //usage: "\n -q Fail silently on errors" | ||
51 | //usage: "\n -t Prepend base directory name to TEMPLATE" | ||
52 | //usage: "\n -p DIR Use DIR as a base directory (implies -t)" | ||
53 | //usage: "\n -u Do not create anything; print a name" | ||
54 | //usage: "\n" | ||
55 | //usage: "\nBase directory is: -p DIR, else $TMPDIR, else /tmp" | ||
56 | //usage: | ||
57 | //usage:#define mktemp_example_usage | ||
58 | //usage: "$ mktemp /tmp/temp.XXXXXX\n" | ||
59 | //usage: "/tmp/temp.mWiLjM\n" | ||
60 | //usage: "$ ls -la /tmp/temp.mWiLjM\n" | ||
61 | //usage: "-rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM\n" | ||
62 | |||
63 | #include "libbb.h" | ||
64 | |||
65 | int mktemp_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||
66 | int mktemp_main(int argc UNUSED_PARAM, char **argv) | ||
67 | { | ||
68 | const char *path; | ||
69 | char *chp; | ||
70 | unsigned opts; | ||
71 | enum { | ||
72 | OPT_d = 1 << 0, | ||
73 | OPT_q = 1 << 1, | ||
74 | OPT_t = 1 << 2, | ||
75 | OPT_p = 1 << 3, | ||
76 | OPT_u = 1 << 4, | ||
77 | }; | ||
78 | |||
79 | path = getenv("TMPDIR"); | ||
80 | if (!path || path[0] == '\0') | ||
81 | path = "/tmp"; | ||
82 | |||
83 | opt_complementary = "?1"; /* 1 argument max */ | ||
84 | opts = getopt32(argv, "dqtp:u", &path); | ||
85 | |||
86 | chp = argv[optind]; | ||
87 | if (!chp) { | ||
88 | /* GNU coreutils 8.4: | ||
89 | * bare "mktemp" -> "mktemp -t tmp.XXXXXX" | ||
90 | */ | ||
91 | chp = xstrdup("tmp.XXXXXX"); | ||
92 | opts |= OPT_t; | ||
93 | } | ||
94 | #if 0 | ||
95 | /* Don't allow directory separator in template */ | ||
96 | if ((opts & OPT_t) && bb_basename(chp) != chp) { | ||
97 | errno = EINVAL; | ||
98 | goto error; | ||
99 | } | ||
100 | #endif | ||
101 | if (opts & (OPT_t|OPT_p)) | ||
102 | chp = concat_path_file(path, chp); | ||
103 | |||
104 | if (opts & OPT_u) { | ||
105 | chp = mktemp(chp); | ||
106 | if (chp[0] == '\0') | ||
107 | goto error; | ||
108 | } else if (opts & OPT_d) { | ||
109 | if (mkdtemp(chp) == NULL) | ||
110 | goto error; | ||
111 | } else { | ||
112 | if (mkstemp(chp) < 0) | ||
113 | goto error; | ||
114 | } | ||
115 | puts(chp); | ||
116 | return EXIT_SUCCESS; | ||
117 | error: | ||
118 | if (opts & OPT_q) | ||
119 | return EXIT_FAILURE; | ||
120 | /* don't use chp as it gets mangled in case of error */ | ||
121 | bb_perror_nomsg_and_die(); | ||
122 | } | ||