No description
Find a file
Arcterus a613b39b27 Merge pull request #183 from ebfe/fix-build-master
Adapt to removal of ~str from libstd.
2014-05-23 08:03:34 -07:00
base64 Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
basename Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
cat Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
cksum Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
comm Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
common Update for getopts changes 2014-05-17 12:32:14 +02:00
cp Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
dirname Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
du Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
echo Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
env Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
false Update for latest Rust 2014-03-31 09:40:21 -07:00
fold Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
groups Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
head Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
hostid Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
hostname Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
id Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
kill Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
logname Remove the now unnecessary conversion of os::args() ret val. 2014-05-23 14:35:58 +02:00
md5sum Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
mkdir Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
paste Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
printenv Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
pwd Update for getopts changes 2014-05-17 12:32:14 +02:00
rm Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
rmdir Update for getopts changes 2014-05-17 12:32:14 +02:00
seq Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
sleep Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
tac Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
tee Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
tr tr: add -c/-d tests 2014-05-18 22:20:07 +02:00
true Update for latest Rust 2014-03-31 09:40:21 -07:00
truncate Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
tty Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
uname Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
unlink Update for getopts changes 2014-05-17 12:32:14 +02:00
uptime Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
users Update for getopts changes 2014-05-17 12:32:14 +02:00
wc Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
whoami Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
yes Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
.gitignore Add the first four utils 2013-08-02 19:33:31 +02: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 tr: add some tests 2014-05-18 17:59:41 +02:00
README.md Add unlink command. 2014-05-16 16:57:03 -07: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
  • cp (some work done in dev branch)
  • csplit
  • cut
  • date
  • dd
  • df
  • dircolors
  • expand (in progress)
  • expr
  • extent-scan
  • factor
  • find-mount-point
  • fmt
  • getlimits
  • group-list
  • install
  • join
  • lbracket
  • libstdbuf
  • link
  • ln
  • ls-dir
  • ls-ls
  • ls-vdir
  • ls
  • make-prime-list
  • 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)
  • sum
  • sync
  • tac-pipe
  • tail
  • test
  • timeout
  • touch
  • tr
  • tsort
  • uname-arch
  • uname-uname
  • unexpand
  • uniq (in progress)
  • who

License

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