Categorygithub.com/fangdingjun/go-coreutils
repositorypackage
0.0.0-20150924105924-210c65f70a5f
Repository: https://github.com/fangdingjun/go-coreutils.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Go coreutils

forthebadge forthebadge

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.

Completed:

16/100

UtilityCompletenessCross PlatformNeed Refactor
cat100%Yes (Unix/Windows)No
chown10% (* see note #1)NoYes (-R)
env100%Yes (Unix/Windows)No
false100%Yes (Unix/Windows)No
logname100%NoNo
pwd100%Yes (Unknown)No
sync100%Yes (Unix/Windows)No
true100%Yes (Unix/Windows)No
tsort100%Yes (Unix/Windows)No
tty100%Yes (Unix/Windows)No
uname100%NoNo
uptime90%Yes (Unix/Window, no FreeBSD)No
wc100%Yes (Unix/Windows)No
whoami100%Yes (Unix/WindowsNo
xxd100%Yes (Unix/Windows)No
yes100%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

Information:

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).

REQUIRES:

(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

LICENSE:

   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/>.