This is a port of GNU's coreutils (http://www.gnu.org/software/coreutils/) that aims to be a drop-in, cross-platform replacement.
It's currently under development.
Because it imports from github.com/EricLagerg/go-gnulib
, and I'm constantly
refactoring, parts could break from day-to-day.
I'd recommend running go get -u ...
before you file a bug report!
Pull requests are more than welcome.
Also, see https://www.github.com/EricLagerg/go-gnulib for a similar project that this project depends on.
16/100
Utility | Completeness | Cross Platform | Need Refactor |
---|---|---|---|
cat | 100% | Yes (Unix/Windows) | No |
chown | 10% (* see note #1) | No | Yes (-R) |
env | 100% | Yes (Unix/Windows) | No |
false | 100% | Yes (Unix/Windows) | No |
logname | 100% | No | No |
pwd | 100% | Yes (Unknown) | No |
sync | 100% | Yes (Unix/Windows) | No |
true | 100% | Yes (Unix/Windows) | No |
tsort | 100% | Yes (Unix/Windows) | No |
tty | 100% | Yes (Unix/Windows) | No |
uname | 100% | No | No |
uptime | 90% | Yes (Unix/Window, no FreeBSD) | No |
wc | 100% | Yes (Unix/Windows) | No |
whoami | 100% | Yes (Unix/Windows | No |
xxd | 100% | Yes (Unix/Windows) | No |
yes | 100% | Yes (Unix/Windows) | No |
- chown note: Currently refactoring from the ground-up.
Side notes:
- Unix should include OS X unless otherwise specified.
- Gofmt means it needs its styling changes (e.g. variable names, formatting, etc.)
- Idiomatic means it needs to be changed to more idiomatic Go
- Windows coverage will increase when I get a Windows laptop
These utilities should be nearly identical to GNU's coreutils, and should have relatively the same speed.
For example, wc.go
counts chars in 550MB file in < 15sec and wc.c
in ~11sec
on an Intel core i3 2.66ghz. (Running Debian 3.2.63-2+deb7u1 x86_64.)
xxd.go
is actually much faster than the native xxd
implementation found
on most *nix machines -- try it out!
It (as a whole) is licensed under the GPLv3 because it's mostly a transliteraiton of GNU's coreutils, which are licensed under the GPL.
However, all parts are/can be licensed individually, as not all are under
the GPL (e.g., xxd
was public domain).
(Depends on platform and command...)
- go get github.com/EricLagerg/ostypes
- go get golang.org/x/sys/unix
- go get github.com/ogier/pflag
- go get github.com/EricLagerg/go-gnulib/ttyname
- go get github.com/EricLagerg/go-gnulib/sysinfo
- go get github.com/EricLagerg/go-gnulib/posix
- go get github.com/EricLagerg/go-gnulib/general
- go get github.com/EricLagerg/go-gnulib/login
Copyright (C) 2014-2015 Eric Lagergren
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.