diff --git a/.gitignore b/.gitignore index e5e3357d9..87190e743 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /build/ /target/ +/busybox/ *~ .*.swp .*.swo diff --git a/Makefile b/Makefile index 0fbad6f99..0f1900e85 100644 --- a/Makefile +++ b/Makefile @@ -22,10 +22,12 @@ ENABLE_STRIP := endif # Install directories -PREFIX ?= /usr/local -BINDIR ?= /bin +PREFIX ?= /usr/local +BINDIR ?= /bin -SRC_DIR=$(shell pwd) +BASEDIR ?= . +SRCDIR := $(BASEDIR)/src +BUILDDIR := $(BASEDIR)/build # Possible programs PROGS := \ @@ -133,32 +135,32 @@ TESTS := \ # Setup for building crates define BUILD_SETUP -X := $(shell $(RUSTC) --print-file-name --crate-type rlib $(1)/$(1).rs) +X := $(shell $(RUSTC) --print-file-name --crate-type rlib $(SRCDIR)/$(1)/$(1).rs) $(1)_RLIB := $$(X) CRATE_RLIBS += $$(X) endef $(foreach crate,$(EXES),$(eval $(call BUILD_SETUP,$(crate)))) # Utils stuff -EXES_PATHS := $(addprefix build/,$(EXES)) -RLIB_PATHS := $(addprefix build/,$(CRATE_RLIBS)) +EXES_PATHS := $(addprefix $(BUILDDIR)/,$(EXES)) +RLIB_PATHS := $(addprefix $(BUILDDIR)/,$(CRATE_RLIBS)) command = sh -c '$(1)' # Main exe build rule define EXE_BUILD -build/gen/$(1).rs: build/mkmain - build/mkmain $(1) build/gen/$(1).rs +$(BUILDDIR)/gen/$(1).rs: $(BUILDDIR)/mkmain + $(BUILDDIR)/mkmain $(1) $$@ -build/$(1): build/gen/$(1).rs build/$($(1)_RLIB) | build deps - $(RUSTC) $(RUSTCBINFLAGS) -L build/ -o build/$(1) build/gen/$(1).rs - $(if $(ENABLE_STRIP),strip build/$(1),) +$(BUILDDIR)/$(1): $(BUILDDIR)/gen/$(1).rs $(BUILDDIR)/$($(1)_RLIB) | $(BUILDDIR) deps + $(RUSTC) $(RUSTCBINFLAGS) -L $(BUILDDIR)/ -o $$@ $$< + $(if $(ENABLE_STRIP),strip $$@,) endef define CRATE_BUILD --include build/$(1).d +-include $(BUILDDIR)/$(1).d -build/$($(1)_RLIB): $(1)/$(1).rs | build deps - $(RUSTC) $(RUSTCFLAGS) -L build/ --crate-type rlib --dep-info build/$(1).d $(1)/$(1).rs --out-dir build +$(BUILDDIR)/$($(1)_RLIB): $(SRCDIR)/$(1)/$(1).rs | $(BUILDDIR) deps + $(RUSTC) $(RUSTCFLAGS) -L $(BUILDDIR)/ --crate-type rlib --dep-info $(BUILDDIR)/$(1).d $$< --out-dir $(BUILDDIR) endef # Aliases build rule @@ -167,24 +169,24 @@ ALIAS_TARGET = $(word 2,$(subst :, ,$(1))) define MAKE_ALIAS ifneq ($(ALIAS_TARGET,$(1)),) -all: build/$(call ALIAS_TARGET,$(1)) -build/$(call ALIAS_TARGET,$(1)): build/$(call ALIAS_SOURCE,$(1)) - $(call command,install build/$(call ALIAS_SOURCE,$(1)) build/$(call ALIAS_TARGET,$(1))) +all: $(BUILDDIR)/$(call ALIAS_TARGET,$(1)) +$(BUILDDIR)/$(call ALIAS_TARGET,$(1)): $(BUILDDIR)/$(call ALIAS_SOURCE,$(1)) + $(call command,install $$@ $$<) endif endef # Test exe built rules define TEST_BUILD -test_$(1): tmp/$(1)_test build/$(1) - $(call command,tmp/$(1)_test) +test_$(1): tmp/$(1)_test $(BUILDDIR)/$(1) + $(call command,$$<) -tmp/$(1)_test: $(1)/test.rs - $(call command,$(RUSTC) $(RUSTCFLAGS) --test -o tmp/$(1)_test $(1)/test.rs) +tmp/$(1)_test: $(SRCDIR)/$(1)/test.rs + $(call command,$(RUSTC) $(RUSTCFLAGS) --test -o $$@ $$<) endef # Main rules -all: $(EXES_PATHS) build/uutils +all: $(EXES_PATHS) $(BUILDDIR)/uutils # Creating necessary rules for each targets $(foreach crate,$(EXES),$(eval $(call CRATE_BUILD,$(crate)))) @@ -192,28 +194,28 @@ $(foreach exe,$(EXES),$(eval $(call EXE_BUILD,$(exe)))) $(foreach alias,$(ALIASES),$(eval $(call MAKE_ALIAS,$(alias)))) $(foreach test,$(TESTS),$(eval $(call TEST_BUILD,$(test)))) --include build/uutils.d -build/uutils: uutils/uutils.rs build/mkuutils $(RLIB_PATHS) - build/mkuutils build/gen/uutils.rs $(BUILD) - $(RUSTC) $(RUSTCBINFLAGS) -L build/ --dep-info $@.d build/gen/uutils.rs -o $@ - $(if $(ENABLE_STRIP),strip build/uutils) +-include $(BUILDDIR)/uutils.d +$(BUILDDIR)/uutils: $(SRCDIR)/uutils/uutils.rs $(BUILDDIR)/mkuutils $(RLIB_PATHS) + $(BUILDDIR)/mkuutils $(BUILDDIR)/gen/uutils.rs $(BUILD) + $(RUSTC) $(RUSTCBINFLAGS) -L $(BUILDDIR)/ --dep-info $@.d $(BUILDDIR)/gen/uutils.rs -o $@ + $(if $(ENABLE_STRIP),strip $@) # Dependencies --include build/rust-crypto.d -build/.rust-crypto: | build - $(RUSTC) $(RUSTCFLAGS) --crate-type rlib --dep-info build/rust-crypto.d deps/rust-crypto/src/rust-crypto/lib.rs --out-dir build/ +-include $(BUILDDIR)/rust-crypto.d +$(BUILDDIR)/.rust-crypto: | $(BUILDDIR) + $(RUSTC) $(RUSTCFLAGS) --crate-type rlib --dep-info $(BUILDDIR)/rust-crypto.d $(BASEDIR)/deps/rust-crypto/src/rust-crypto/lib.rs --out-dir $(BUILDDIR)/ @touch $@ -build/mkmain: mkmain.rs | build - $(RUSTC) $(RUSTCFLAGS) -L build mkmain.rs -o $@ +$(BUILDDIR)/mkmain: mkmain.rs | $(BUILDDIR) + $(RUSTC) $(RUSTCFLAGS) -L $(BUILDDIR) $< -o $@ -build/mkuutils: mkuutils.rs | build - $(RUSTC) $(RUSTCFLAGS) -L build mkuutils.rs -o $@ +$(BUILDDIR)/mkuutils: mkuutils.rs | $(BUILDDIR) + $(RUSTC) $(RUSTCFLAGS) -L $(BUILDDIR) $< -o $@ -cksum/crc_table.rs: cksum/gen_table.rs - cd cksum && $(RUSTC) $(RUSTCFLAGS) gen_table.rs && ./gen_table && $(RM) gen_table +$(SRCDIR)/cksum/crc_table.rs: $(SRCDIR)/cksum/gen_table.rs + cd $(SRCDIR)/cksum && $(RUSTC) $(RUSTCFLAGS) gen_table.rs && ./gen_table && $(RM) gen_table -deps: build/.rust-crypto cksum/crc_table.rs +deps: $(BUILDDIR)/.rust-crypto $(SRCDIR)/cksum/crc_table.rs crates: echo $(EXES) @@ -222,25 +224,25 @@ test: tmp $(addprefix test_,$(TESTS)) $(RM) -rf tmp clean: - $(RM) -rf build tmp + $(RM) -rf $(BUILDDIR) tmp -build: +$(BUILDDIR): git submodule update --init - mkdir -p build/gen + mkdir -p $(BUILDDIR)/gen tmp: mkdir tmp -install: $(addprefix build/,$(INSTALLEES)) +install: $(addprefix $(BUILDDIR)/,$(INSTALLEES)) mkdir -p $(DESTDIR)$(PREFIX)$(BINDIR) for prog in $(INSTALLEES); do \ - install build/$$prog $(DESTDIR)$(PREFIX)$(BINDIR)/$(PROG_PREFIX)$$prog; \ + install $(BUILDDIR)/$$prog $(DESTDIR)$(PREFIX)$(BINDIR)/$(PROG_PREFIX)$$prog; \ done # TODO: figure out if there is way for prefixes to work with the symlinks -install-multicall: build/uutils +install-multicall: $(BUILDDIR)/uutils mkdir -p $(DESTDIR)$(PREFIX)$(BINDIR) - install build/uutils $(DESTDIR)$(PREFIX)$(BINDIR)/$(PROG_PREFIX)uutils + install $(BUILDDIR)/uutils $(DESTDIR)$(PREFIX)$(BINDIR)/$(PROG_PREFIX)uutils cd $(DESTDIR)$(PREFIX)$(BINDIR) for prog in $(INSTALLEES); do \ ln -s $(PROG_PREFIX)uutils $$prog; \ @@ -253,13 +255,13 @@ uninstall-multicall: rm -f $(addprefix $(DESTDIR)$(PREFIX)$(BINDIR)/,$(PROGS) $(PROG_PREFIX)uutils) # Test under the busybox testsuite -build/busybox: build/uutils - rm -f build/busybox - ln -s $(SRC_DIR)/build/uutils build/busybox +$(BUILDDIR)/busybox: $(BUILDDIR)/uutils + rm -f $(BUILDDIR)/busybox + ln -s $(BUILDDIR)/uutils $(BUILDDIR)/busybox # This is a busybox-specific config file their test suite wants to parse. # For now it's blank. -build/.config: build/uutils +$(BUILDDIR)/.config: $(BUILDDIR)/uutils touch $@ ifeq ($(BUSYBOX_SRC),) @@ -270,8 +272,8 @@ busytest: @echo @false else -busytest: build/busybox build/.config - (cd $(BUSYBOX_SRC)/testsuite && bindir=$(SRC_DIR)/build ./runtest $(RUNTEST_ARGS)) +busytest: $(BUILDDIR)/busybox $(BUILDDIR)/.config + (cd $(BUSYBOX_SRC)/testsuite && bindir=$(BUILDDIR) ./runtest $(RUNTEST_ARGS)) endif .PHONY: all deps test clean busytest install uninstall diff --git a/mkuutils.rs b/mkuutils.rs index 856de53c9..c6491b78a 100644 --- a/mkuutils.rs +++ b/mkuutils.rs @@ -48,7 +48,7 @@ fn main() { // XXX: this all just assumes that the IO works correctly let mut out = File::open_mode(&Path::new(outfile), Truncate, Write).unwrap(); - let mut input = File::open(&Path::new("uutils/uutils.rs")).unwrap(); + let mut input = File::open(&Path::new("src/uutils/uutils.rs")).unwrap(); let main = input.read_to_string().unwrap().replace("@CRATES@", crates.as_slice()).replace("@UTIL_MAP@", util_map.as_slice()); match out.write(main.as_bytes()) { diff --git a/base64/base64.rs b/src/base64/base64.rs similarity index 100% rename from base64/base64.rs rename to src/base64/base64.rs diff --git a/basename/basename.rs b/src/basename/basename.rs similarity index 100% rename from basename/basename.rs rename to src/basename/basename.rs diff --git a/cat/cat.rs b/src/cat/cat.rs similarity index 100% rename from cat/cat.rs rename to src/cat/cat.rs diff --git a/cat/fixtures/256.txt b/src/cat/fixtures/256.txt similarity index 100% rename from cat/fixtures/256.txt rename to src/cat/fixtures/256.txt diff --git a/cat/fixtures/alpha.txt b/src/cat/fixtures/alpha.txt similarity index 100% rename from cat/fixtures/alpha.txt rename to src/cat/fixtures/alpha.txt diff --git a/cat/test.rs b/src/cat/test.rs similarity index 93% rename from cat/test.rs rename to src/cat/test.rs index 9b2db581e..2b0e3e417 100644 --- a/cat/test.rs +++ b/src/cat/test.rs @@ -4,8 +4,8 @@ use std::str; #[test] fn test_output_multi_files_print_all_chars() { let po = match Command::new("build/cat") - .arg("cat/fixtures/alpha.txt") - .arg("cat/fixtures/256.txt") + .arg("src/cat/fixtures/alpha.txt") + .arg("src/cat/fixtures/256.txt") .arg("-A") .arg("-n").output() { diff --git a/chroot/chroot.rs b/src/chroot/chroot.rs similarity index 100% rename from chroot/chroot.rs rename to src/chroot/chroot.rs diff --git a/cksum/cksum.rs b/src/cksum/cksum.rs similarity index 100% rename from cksum/cksum.rs rename to src/cksum/cksum.rs diff --git a/cksum/crc_table.rs b/src/cksum/crc_table.rs similarity index 100% rename from cksum/crc_table.rs rename to src/cksum/crc_table.rs diff --git a/cksum/gen_table.rs b/src/cksum/gen_table.rs similarity index 100% rename from cksum/gen_table.rs rename to src/cksum/gen_table.rs diff --git a/comm/comm.rs b/src/comm/comm.rs similarity index 100% rename from comm/comm.rs rename to src/comm/comm.rs diff --git a/common/c_types.rs b/src/common/c_types.rs similarity index 100% rename from common/c_types.rs rename to src/common/c_types.rs diff --git a/common/util.rs b/src/common/util.rs similarity index 100% rename from common/util.rs rename to src/common/util.rs diff --git a/common/utmpx.rs b/src/common/utmpx.rs similarity index 100% rename from common/utmpx.rs rename to src/common/utmpx.rs diff --git a/cp/cp.rs b/src/cp/cp.rs similarity index 100% rename from cp/cp.rs rename to src/cp/cp.rs diff --git a/cut/buffer.rs b/src/cut/buffer.rs similarity index 100% rename from cut/buffer.rs rename to src/cut/buffer.rs diff --git a/cut/cut.rs b/src/cut/cut.rs similarity index 100% rename from cut/cut.rs rename to src/cut/cut.rs diff --git a/cut/ranges.rs b/src/cut/ranges.rs similarity index 100% rename from cut/ranges.rs rename to src/cut/ranges.rs diff --git a/dirname/dirname.rs b/src/dirname/dirname.rs similarity index 100% rename from dirname/dirname.rs rename to src/dirname/dirname.rs diff --git a/du/du.rs b/src/du/du.rs similarity index 100% rename from du/du.rs rename to src/du/du.rs diff --git a/echo/echo.rs b/src/echo/echo.rs similarity index 100% rename from echo/echo.rs rename to src/echo/echo.rs diff --git a/env/env.rs b/src/env/env.rs similarity index 100% rename from env/env.rs rename to src/env/env.rs diff --git a/factor/factor.rs b/src/factor/factor.rs similarity index 100% rename from factor/factor.rs rename to src/factor/factor.rs diff --git a/false/false.rs b/src/false/false.rs similarity index 100% rename from false/false.rs rename to src/false/false.rs diff --git a/fmt/fmt.rs b/src/fmt/fmt.rs similarity index 100% rename from fmt/fmt.rs rename to src/fmt/fmt.rs diff --git a/fmt/linebreak.rs b/src/fmt/linebreak.rs similarity index 100% rename from fmt/linebreak.rs rename to src/fmt/linebreak.rs diff --git a/fmt/parasplit.rs b/src/fmt/parasplit.rs similarity index 100% rename from fmt/parasplit.rs rename to src/fmt/parasplit.rs diff --git a/fold/fold.rs b/src/fold/fold.rs similarity index 100% rename from fold/fold.rs rename to src/fold/fold.rs diff --git a/groups/groups.rs b/src/groups/groups.rs similarity index 100% rename from groups/groups.rs rename to src/groups/groups.rs diff --git a/hashsum/hashsum.rs b/src/hashsum/hashsum.rs similarity index 100% rename from hashsum/hashsum.rs rename to src/hashsum/hashsum.rs diff --git a/head/head.rs b/src/head/head.rs similarity index 100% rename from head/head.rs rename to src/head/head.rs diff --git a/hostid/hostid.rs b/src/hostid/hostid.rs similarity index 100% rename from hostid/hostid.rs rename to src/hostid/hostid.rs diff --git a/hostname/hostname.rs b/src/hostname/hostname.rs similarity index 100% rename from hostname/hostname.rs rename to src/hostname/hostname.rs diff --git a/id/id.rs b/src/id/id.rs similarity index 100% rename from id/id.rs rename to src/id/id.rs diff --git a/kill/kill.rs b/src/kill/kill.rs similarity index 100% rename from kill/kill.rs rename to src/kill/kill.rs diff --git a/kill/signals.rs b/src/kill/signals.rs similarity index 100% rename from kill/signals.rs rename to src/kill/signals.rs diff --git a/link/link.rs b/src/link/link.rs similarity index 100% rename from link/link.rs rename to src/link/link.rs diff --git a/logname/logname.rs b/src/logname/logname.rs similarity index 100% rename from logname/logname.rs rename to src/logname/logname.rs diff --git a/mkdir/mkdir.rs b/src/mkdir/mkdir.rs similarity index 100% rename from mkdir/mkdir.rs rename to src/mkdir/mkdir.rs diff --git a/mkdir/test.rs b/src/mkdir/test.rs similarity index 100% rename from mkdir/test.rs rename to src/mkdir/test.rs diff --git a/mkfifo/mkfifo.rs b/src/mkfifo/mkfifo.rs similarity index 100% rename from mkfifo/mkfifo.rs rename to src/mkfifo/mkfifo.rs diff --git a/nl/fixtures/joinblanklines.txt b/src/nl/fixtures/joinblanklines.txt similarity index 100% rename from nl/fixtures/joinblanklines.txt rename to src/nl/fixtures/joinblanklines.txt diff --git a/nl/fixtures/section.txt b/src/nl/fixtures/section.txt similarity index 100% rename from nl/fixtures/section.txt rename to src/nl/fixtures/section.txt diff --git a/nl/fixtures/simple.txt b/src/nl/fixtures/simple.txt similarity index 100% rename from nl/fixtures/simple.txt rename to src/nl/fixtures/simple.txt diff --git a/nl/helper.rs b/src/nl/helper.rs similarity index 100% rename from nl/helper.rs rename to src/nl/helper.rs diff --git a/nl/nl.rs b/src/nl/nl.rs similarity index 100% rename from nl/nl.rs rename to src/nl/nl.rs diff --git a/nl/test.rs b/src/nl/test.rs similarity index 90% rename from nl/test.rs rename to src/nl/test.rs index 80f95e687..dc1e41de9 100644 --- a/nl/test.rs +++ b/src/nl/test.rs @@ -27,7 +27,7 @@ fn test_stdin_newline() { #[test] fn test_padding_without_overflow() { let po = Command::new("build/nl").arg("-i").arg("1000").arg("-s").arg("x") - .arg("-n").arg("rz").arg("nl/fixtures/simple.txt").output().unwrap(); + .arg("-n").arg("rz").arg("src/nl/fixtures/simple.txt").output().unwrap(); let out = str::from_utf8(po.output.as_slice()).unwrap(); assert_eq!(out, "000001xL1\n001001xL2\n002001xL3\n003001xL4\n004001xL5\n005001xL6\n006001xL7\n007001xL8\n008001xL9\n009001xL10\n010001xL11\n011001xL12\n012001xL13\n013001xL14\n014001xL15\n"); @@ -37,7 +37,7 @@ fn test_padding_without_overflow() { fn test_padding_with_overflow() { let po = Command::new("build/nl").arg("-i").arg("1000").arg("-s").arg("x") .arg("-n").arg("rz").arg("-w").arg("4") - .arg("nl/fixtures/simple.txt").output().unwrap(); + .arg("src/nl/fixtures/simple.txt").output().unwrap(); let out = str::from_utf8(po.output.as_slice()).unwrap(); assert_eq!(out, "0001xL1\n1001xL2\n2001xL3\n3001xL4\n4001xL5\n5001xL6\n6001xL7\n7001xL8\n8001xL9\n9001xL10\n10001xL11\n11001xL12\n12001xL13\n13001xL14\n14001xL15\n"); @@ -47,11 +47,11 @@ fn test_padding_with_overflow() { fn test_sections_and_styles() { for &(fixture, output) in [ ( - "nl/fixtures/section.txt", + "src/nl/fixtures/section.txt", "\nHEADER1\nHEADER2\n\n1 |BODY1\n2 |BODY2\n\nFOOTER1\nFOOTER2\n\nNEXTHEADER1\nNEXTHEADER2\n\n1 |NEXTBODY1\n2 |NEXTBODY2\n\nNEXTFOOTER1\nNEXTFOOTER2\n" ), ( - "nl/fixtures/joinblanklines.txt", + "src/nl/fixtures/joinblanklines.txt", "1 |Nonempty\n2 |Nonempty\n3 |Followed by 10x empty\n\n\n\n\n4 |\n\n\n\n\n5 |\n6 |Followed by 5x empty\n\n\n\n\n7 |\n8 |Followed by 4x empty\n\n\n\n\n9 |Nonempty\n10 |Nonempty\n11 |Nonempty.\n" ), ].iter() { diff --git a/nohup/nohup.rs b/src/nohup/nohup.rs similarity index 100% rename from nohup/nohup.rs rename to src/nohup/nohup.rs diff --git a/paste/paste.rs b/src/paste/paste.rs similarity index 100% rename from paste/paste.rs rename to src/paste/paste.rs diff --git a/printenv/printenv.rs b/src/printenv/printenv.rs similarity index 100% rename from printenv/printenv.rs rename to src/printenv/printenv.rs diff --git a/pwd/pwd.rs b/src/pwd/pwd.rs similarity index 100% rename from pwd/pwd.rs rename to src/pwd/pwd.rs diff --git a/realpath/realpath.rs b/src/realpath/realpath.rs similarity index 100% rename from realpath/realpath.rs rename to src/realpath/realpath.rs diff --git a/relpath/relpath.rs b/src/relpath/relpath.rs similarity index 100% rename from relpath/relpath.rs rename to src/relpath/relpath.rs diff --git a/rm/rm.rs b/src/rm/rm.rs similarity index 100% rename from rm/rm.rs rename to src/rm/rm.rs diff --git a/rmdir/rmdir.rs b/src/rmdir/rmdir.rs similarity index 100% rename from rmdir/rmdir.rs rename to src/rmdir/rmdir.rs diff --git a/seq/seq.rs b/src/seq/seq.rs similarity index 100% rename from seq/seq.rs rename to src/seq/seq.rs diff --git a/seq/test.rs b/src/seq/test.rs similarity index 100% rename from seq/test.rs rename to src/seq/test.rs diff --git a/shuf/shuf.rs b/src/shuf/shuf.rs similarity index 100% rename from shuf/shuf.rs rename to src/shuf/shuf.rs diff --git a/sleep/sleep.rs b/src/sleep/sleep.rs similarity index 100% rename from sleep/sleep.rs rename to src/sleep/sleep.rs diff --git a/split/README.md b/src/split/README.md similarity index 100% rename from split/README.md rename to src/split/README.md diff --git a/split/split.rs b/src/split/split.rs similarity index 100% rename from split/split.rs rename to src/split/split.rs diff --git a/sum/sum.rs b/src/sum/sum.rs similarity index 100% rename from sum/sum.rs rename to src/sum/sum.rs diff --git a/sync/sync.rs b/src/sync/sync.rs similarity index 100% rename from sync/sync.rs rename to src/sync/sync.rs diff --git a/tac/tac.rs b/src/tac/tac.rs similarity index 100% rename from tac/tac.rs rename to src/tac/tac.rs diff --git a/tail/README.md b/src/tail/README.md similarity index 100% rename from tail/README.md rename to src/tail/README.md diff --git a/tail/tail.rs b/src/tail/tail.rs similarity index 100% rename from tail/tail.rs rename to src/tail/tail.rs diff --git a/tee/tee.rs b/src/tee/tee.rs similarity index 100% rename from tee/tee.rs rename to src/tee/tee.rs diff --git a/test/test.rs b/src/test/test.rs similarity index 100% rename from test/test.rs rename to src/test/test.rs diff --git a/touch/touch.rs b/src/touch/touch.rs similarity index 100% rename from touch/touch.rs rename to src/touch/touch.rs diff --git a/tr/test.rs b/src/tr/test.rs similarity index 100% rename from tr/test.rs rename to src/tr/test.rs diff --git a/tr/tr.rs b/src/tr/tr.rs similarity index 100% rename from tr/tr.rs rename to src/tr/tr.rs diff --git a/true/true.rs b/src/true/true.rs similarity index 100% rename from true/true.rs rename to src/true/true.rs diff --git a/truncate/test.rs b/src/truncate/test.rs similarity index 100% rename from truncate/test.rs rename to src/truncate/test.rs diff --git a/truncate/truncate.rs b/src/truncate/truncate.rs similarity index 100% rename from truncate/truncate.rs rename to src/truncate/truncate.rs diff --git a/tsort/tsort.rs b/src/tsort/tsort.rs similarity index 100% rename from tsort/tsort.rs rename to src/tsort/tsort.rs diff --git a/tty/tty.rs b/src/tty/tty.rs similarity index 100% rename from tty/tty.rs rename to src/tty/tty.rs diff --git a/uname/uname.rs b/src/uname/uname.rs similarity index 100% rename from uname/uname.rs rename to src/uname/uname.rs diff --git a/uniq/uniq.rs b/src/uniq/uniq.rs similarity index 100% rename from uniq/uniq.rs rename to src/uniq/uniq.rs diff --git a/unlink/unlink.rs b/src/unlink/unlink.rs similarity index 100% rename from unlink/unlink.rs rename to src/unlink/unlink.rs diff --git a/uptime/uptime.rs b/src/uptime/uptime.rs similarity index 100% rename from uptime/uptime.rs rename to src/uptime/uptime.rs diff --git a/users/users.rs b/src/users/users.rs similarity index 100% rename from users/users.rs rename to src/users/users.rs diff --git a/uutils/uutils.rs b/src/uutils/uutils.rs similarity index 100% rename from uutils/uutils.rs rename to src/uutils/uutils.rs diff --git a/wc/wc.rs b/src/wc/wc.rs similarity index 100% rename from wc/wc.rs rename to src/wc/wc.rs diff --git a/whoami/whoami.rs b/src/whoami/whoami.rs similarity index 100% rename from whoami/whoami.rs rename to src/whoami/whoami.rs diff --git a/yes/yes.rs b/src/yes/yes.rs similarity index 100% rename from yes/yes.rs rename to src/yes/yes.rs