Go to file
T. Jameson Little b321a1a5c0 add factor
2014-06-05 14:14:04 -06:00
base64 Update to nightly 2014-06-02 14:07:53 -07:00
basename remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
cat Update to nightly 2014-06-02 14:07:53 -07:00
cksum silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
comm comm: handle final lines without \n 2014-06-03 11:59:57 +02:00
common StrBuf was renamed to String 2014-05-25 11:20:52 +02:00
cp cp: fix argument parsing 2014-06-03 13:16:57 +02:00
dirname remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
du remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
echo remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
env Update to nightly 2014-06-02 14:07:53 -07:00
factor add factor 2014-06-05 14:14:04 -06:00
false Update for latest Rust 2014-03-31 09:40:21 -07:00
fold silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
groups silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
head Merge pull request #195 from ebfe/multicall 2014-05-29 00:03:12 -07:00
hostid silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
hostname silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
id silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
kill remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
logname remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
md5sum Update to nightly 2014-06-02 14:07:53 -07:00
mkdir Update to nightly 2014-06-02 14:07:53 -07:00
paste remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
printenv remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
pwd remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
rm Update to nightly 2014-06-02 14:07:53 -07:00
rmdir remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
seq remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
sleep remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
sum remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
tac Update to nightly 2014-06-02 14:07:53 -07:00
tee remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
touch remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
tr silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
true Update for latest Rust 2014-03-31 09:40:21 -07:00
truncate Update to nightly 2014-06-02 14:07:53 -07:00
tty silence dead code warnings in multicall build 2014-05-29 08:58:06 +02:00
uname remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
unlink remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
uptime remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
users remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
uutils Improve busybox compatibility for command line processing 2014-06-02 14:07:55 -07:00
wc remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
whoami remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
yes remove remaining uses of ~[T] 2014-05-30 10:40:36 +02:00
.gitignore Update .gitignore 2014-05-28 23:11:09 -07:00
.gitmodules Implement md5sum (closes #47) 2014-03-24 16:53:35 -07:00
.travis.yml Fix travis 2014-05-13 21:24:17 -07:00
common.mk Implement md5sum (closes #47) 2014-03-24 16:53:35 -07:00
LICENSE Add the first four utils 2013-08-02 19:33:31 +02:00
Makefile add factor 2014-06-05 14:14:04 -06:00
README.md add factor 2014-06-05 14:14:04 -06:00

uutils coreutils Build Status

uutils is an attempt at writing universal (as in cross-platform) CLI utils in Rust. This repo is to aggregate the GNU coreutils rewrites.

Why?

Many GNU, Linux and other utils are pretty awesome, and obviously some effort has been spent in the past to port them to Windows. However, those projects are either old, abandoned, hosted on CVS, written in platform-specific C, etc.

Rust provides a good, platform-agnostic way of writing systems utils that are easy to compile anywhere, and this is as good a way as any to try and learn it.

Build Instructions

To simply build all available utilities:

make

To build all but a few of the available utilities:

make DONT_BUILD='UTILITY_1 UTILITY_2'

To build only a few of the available utilities:

make BUILD='UTILITY_1 UTILITY_2'

Test Instructions

To simply test all available utilities:

make test

To test all but a few of the available utilities:

make DONT_TEST='UTILITY_1 UTILITY_2' test

To test only a few of the available utilities:

make TEST='UTILITY_1 UTILITY_2' test

Contribute

Contributions are very welcome, and should target Rust's master branch until Rust 1.0 is released. You may claim an item on the to-do list by following these steps:

  1. Open an issue named "Implement [the utility of your choice]", e.g. "Implement ls"
  2. State that you are working on this utility.
  3. Develop the utility.
  4. Submit a pull request and close the issue. Your pull request should include deleting the utility from the to-do list on this README.

The steps above imply that, before starting to work on a utility, you should search the issues to make sure no one else is working on it.

To do

  • chcon
  • chgrp
  • chmod
  • chown-core
  • chown
  • chroot
  • copy
  • cp-hash
  • csplit
  • cut
  • date
  • dd
  • df
  • dircolors
  • expand (in progress)
  • expr
  • extent-scan
  • find-mount-point
  • fmt
  • getlimits
  • group-list
  • install
  • join
  • lbracket
  • libstdbuf
  • link
  • ln
  • ls-dir
  • ls-ls
  • ls-vdir
  • ls
  • mkfifo
  • mknod
  • mktemp
  • mv
  • nice
  • nl
  • nohup
  • nproc
  • numfmt
  • od
  • operand2sig
  • pathchk
  • pinky
  • pr
  • printf
  • prog-fprintf
  • ptx
  • readlink
  • realpath
  • relpath
  • remove
  • runcon
  • setuidgid
  • shred
  • shuf
  • sort
  • split
  • stat
  • stdbuf
  • stty (in progress)
  • sync
  • tac-pipe
  • tail
  • test
  • timeout
  • tsort
  • uname-arch
  • uname-uname
  • unexpand
  • uniq (in progress)
  • who

License

uutils is licensed under the MIT License - see the LICENSE file for details