No description
Find a file
2014-05-23 14:28:40 +02:00
base64 Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
basename Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
cat Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
cksum Update for getopts changes 2014-05-17 12:32:14 +02:00
comm comm: add --output-delimiter 2014-05-18 21:28:42 +02:00
common Update for getopts changes 2014-05-17 12:32:14 +02:00
cp Add cp back to Makefile and fix build. 2014-05-17 19:01:17 +02:00
dirname Update for getopts changes 2014-05-17 12:32:14 +02:00
du Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
echo Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +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 Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
groups Update for getopts changes 2014-05-17 12:32:14 +02:00
head Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
hostid Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
hostname Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
id Update for getopts changes 2014-05-17 12:32:14 +02:00
kill Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +02:00
logname Adapt to removal of ~str from libstd. 2014-05-23 14:28:40 +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