aboutsummaryrefslogtreecommitdiff
path: root/toys/mkfifo.c
diff options
context:
space:
mode:
Diffstat (limited to 'toys/mkfifo.c')
-rw-r--r--toys/mkfifo.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/toys/mkfifo.c b/toys/mkfifo.c
index 17d9c2cb..ab466fc3 100644
--- a/toys/mkfifo.c
+++ b/toys/mkfifo.c
@@ -8,7 +8,7 @@
*
* TODO: Add -m
-USE_MKFIFO(NEWTOY(mkfifo, "<1", TOYFLAG_BIN))
+USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_BIN))
config MKFIFO
bool "mkfifo"
@@ -22,16 +22,21 @@ config MKFIFO
#include "toys.h"
DEFINE_GLOBALS(
- long mode;
+ char *m_string;
+ mode_t mode;
)
#define TT this.mkfifo
+#define FLAG_m (1)
void mkfifo_main(void)
{
char **s;
TT.mode = 0666;
+ if (toys.optflags & FLAG_m) {
+ TT.mode = string_to_mode(TT.m_string, 0);
+ }
for (s = toys.optargs; *s; s++) {
if (mknod(*s, S_IFIFO | TT.mode, 0) < 0) {