# gonix
Clones of the *nix tools written in go
# Status
If a program is marked complete, then most/all the standard features are implemented.
* basename [works]
* cat [works]
* cp [works, very incomplete]
* dirname [**complete**]
* echo [works]
* false [**complete**]
* head [works]
* mkdir [works]
* nl [works]
* pwd [works]
* seq [works]
* sleep [**complete**]
* tail [works]
* tee [**complete**]
* touch [works]
* true [**complete**]
* xxd [works]
* yes [**complete**]
Unimplemented:
* bc
* dc
* ed
* ls
* more
* rm
# Bugs
Many tools do not exist and many features are not implemented.
I used "flag" to do the flag-parsing, it is a little strict (ie. no combining flags like -xyz instead of -x -y -z).
# Building
To keep the binary sizes small (around 20-30kb each, on my PC) I use the gccgo compiler, so you need to have that installed.
Build the project with the build script:
```sh
$ sh build.sh
```
It will compile each program and the binaries will be placed in the same directory.
**TODO:** Write a Makefile.
# Running
As long as you are in the same directory as the compiled program, you can run it like so:
./x
Where x refers to the name of the program
**WARNING:** Keep the programs in a directory **NOT** in your $PATH or they may end up being run *instead* of your system's commands.