/gopherutils

coreutils clone

Primary LanguageGoMIT LicenseMIT

Gopherutils

Gopherutils is a coreutils-like set of common programs for managing and interacting a Unix system.

Compiling

Run build.sh (Unix) or build.ps1 (Windows) to compile all the programs.

The compiled programs will be placed in ./bin/ and can be run from there.

Testing

Only the ./shared/ sources are tested. Testing is done via the test.go program. Near the end of the project it will be converted to act in the same role as test in coreutils.

Why

It's open source, and it's rather simple to work on, and it tries to limit bloat where reasonable.

Contributions

We welcome contributions to the gopherutils project! Here are some guidelines to help you get started:

  • Program Completion: Contributions should focus on completing the listed programs below. Ensure they are fully functional and should aim to be GNU Compatible.
  • Bug Fixes: Identifying and fixing bugs is highly appreciated. Please include detailed descriptions of the issues and the solutions.
  • Minor Features: Suggestions and implementations for minor features that enhance the project's functionality are welcome.
  • Code Style: Maintain consistency with the existing codebase.
  • Communication: Open an issue or join the discussion before significant changes to ensure alignment with the project's direction.

Licensing

This project uses the MIT license.

See LICENSE

List of programs

  • chgrp

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • chown

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • chmod

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • cp

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • dd

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • df

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ➗ GNU Compatibility

  • dir

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • dircolors

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • ln

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • ls

    ✔️ Basic functionality

    ❌ Advanced functionality

    • ✔️ Compact list rendering

    ❌ GNU Compatibility

  • mkdir

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ❌ GNU Compatibility

  • mkfifo

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • mktemp

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • mv

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ❌ GNU Compatibility

  • realpath

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • rm

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • rmdir

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • shred

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • sync

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • touch

    ✔️ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • vdir

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • b2sum

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • base32

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • base64

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • cat

    ✔️ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • cksum

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • comm

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • csplit

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • cut

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • expand

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • fmt

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • fold

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • head

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • join

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • md5sum

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • nl

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • numfmt

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • od

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • paste

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • shasum

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • shuf

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • sort

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • split

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • sum

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • tac

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • tail

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • tr

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • tsort

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • unexpand

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • uniq

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • wc

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • arch

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • basename

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • chroot

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • date

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • dirname

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • du

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • echo

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • env

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • expr

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • factor

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • false

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • groups

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • hostid

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • id

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • link

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • logname

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • nice

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • nohup

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • nproc

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • pathchk

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • pinky

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • printenv

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • printf

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • pwd

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • readlink

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • runcon

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • seq

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • sleep

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • stat

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • stdbuf

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • stty

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • tee

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • test

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • timeout

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • true

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • tty

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • uname

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • unlink

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • uptime

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • users

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • who

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • whoami

    ✔️ Basic functionality

    ✔️ Advanced functionality

    ✔️ GNU Compatibility

  • yes

    ❌ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility

  • hostname

    ✔️ Basic functionality

    ❌ Advanced functionality

    ❌ GNU Compatibility