From 79478626da91471db186b1a503ed4bb21c470304 Mon Sep 17 00:00:00 2001 From: Knight Date: Sat, 7 May 2016 14:57:47 +0800 Subject: [PATCH] add mknod --- Cargo.toml | 4 +++- Makefile | 15 ++++++++------- src/mknod/Cargo.toml | 17 +++++++++++++++++ src/mknod/main.rs | 5 +++++ 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 src/mknod/Cargo.toml create mode 100644 src/mknod/main.rs diff --git a/Cargo.toml b/Cargo.toml index 5be88ea6c..7f398ae68 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ unix = [ "kill", "logname", "mkfifo", + "mknod", "mktemp", "mv", "nice", @@ -123,8 +124,9 @@ ln = { optional=true, path="src/ln" } ls = { optional=true, path="src/ls" } logname = { optional=true, path="src/logname" } mkdir = { optional=true, path="src/mkdir" } -mktemp = { optional=true, path="src/mktemp" } mkfifo = { optional=true, path="src/mkfifo" } +mknod = { optional=true, path="src/mknod" } +mktemp = { optional=true, path="src/mktemp" } mv = { optional=true, path="src/mv" } nice = { optional=true, path="src/nice" } nl = { optional=true, path="src/nl" } diff --git a/Makefile b/Makefile index 185f1fbeb..b31261214 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ CARGOFLAGS ?= # Install directories PREFIX ?= /usr/local -DESTDIR ?= +DESTDIR ?= BINDIR ?= /bin LIBDIR ?= /lib @@ -107,6 +107,7 @@ UNIX_PROGS := \ kill \ logname \ mkfifo \ + mknod \ mv \ nice \ nohup \ @@ -182,7 +183,7 @@ TESTS := \ $(sort $(filter $(UTILS),$(filter-out $(SKIP_UTILS),$(TEST_PROGS)))) TEST_NO_FAIL_FAST := -TEST_SPEC_FEATURE := +TEST_SPEC_FEATURE := ifneq ($(SPEC),) TEST_NO_FAIL_FAST :=--no-fail-fast TEST_SPEC_FEATURE := test_unimplemented @@ -236,7 +237,7 @@ $(foreach util,$(EXES),$(eval $(call BUILD_EXE,$(util)))) build-pkgs: $(addprefix build_exe_,$(EXES)) -build-uutils: +build-uutils: ${CARGO} build ${CARGOFLAGS} --features "${EXES}" ${PROFILE_CMD} --no-default-features build: build-uutils build-pkgs @@ -254,11 +255,11 @@ busybox-src: fi; \ # This is a busybox-specific config file their test suite wants to parse. -$(BUILDDIR)/.config: $(BASEDIR)/.busybox-config +$(BUILDDIR)/.config: $(BASEDIR)/.busybox-config cp $< $@ # Test under the busybox testsuite -$(BUILDDIR)/busybox: busybox-src build-uutils $(BUILDDIR)/.config +$(BUILDDIR)/busybox: busybox-src build-uutils $(BUILDDIR)/.config cp $(BUILDDIR)/uutils $(BUILDDIR)/busybox; \ chmod +x $@; @@ -269,12 +270,12 @@ busytest: $(BUILDDIR)/busybox $(addprefix test_busybox_,$(filter-out $(SKIP_UTIL endif clean: - $(RM) -rf $(BUILDDIR) + $(RM) -rf $(BUILDDIR) distclean: clean $(CARGO) clean $(CARGOFLAGS) && $(CARGO) update $(CARGOFLAGS) -install: build +install: build mkdir -p $(INSTALLDIR_BIN) ifeq (${MULTICALL}, y) install $(BUILDDIR)/uutils $(INSTALLDIR_BIN)/$(PROG_PREFIX)uutils diff --git a/src/mknod/Cargo.toml b/src/mknod/Cargo.toml new file mode 100644 index 000000000..47e8870c1 --- /dev/null +++ b/src/mknod/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "mknod" +version = "0.0.1" +authors = [] + +[lib] +name = "uu_mknod" +path = "mknod.rs" + +[dependencies] +getopts = "*" +libc = "*" +uucore = { path="../uucore" } + +[[bin]] +name = "mknod" +path = "main.rs" diff --git a/src/mknod/main.rs b/src/mknod/main.rs new file mode 100644 index 000000000..41cf1306d --- /dev/null +++ b/src/mknod/main.rs @@ -0,0 +1,5 @@ +extern crate uu_mknod; + +fn main() { + std::process::exit(uu_mknod::uumain(std::env::args().collect())); +}