Userland in D language!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Cas Rusnov f98483a950 Update README 9 months ago
src Update README 9 months ago
.gitignore Add dirname and tsort 9 months ago
COPYING Initial checkin. 9 months ago
README.md Update README 9 months ago
meson.build Add cut and bugfixes to tsort 9 months ago

README.md

D CORE

This is a simple rewrite of coreutils in D, work in progress. Most of the behaviors, at this stage, will be more similar to the FreeBSD coreutils than GNU Coreutils, so as to adhere more closely to the minimum set of functionality defined by POSIX. Once that is implemented, we can look at making thingns diverge from both to be more usable or more ergonomic.

My personal challenge for myself is to implement this mostly from manpages of Linux and FreeBSD, including library manpages. Obviously it depends on some stdc library interfaces and options. Hopefully it’ll be portable to other Unix-likes (I am developing in Linux).

FAQ

WHY?

Fun.

Tha list

Done

  • yes
  • tee
  • tty
  • echo
  • uname (this doesn’t match Linux, but matches FreeBSD’s implementation)
  • hostid
  • true / false (i called it “return” and it will work if you name it true, or false).
  • sync
  • basename
  • tsort
  • dirname
  • cut (extends functionality in useful ways that are substantially better than gnu version).

WIP

  • mkdir
  • cksum (doesn’t work - algorithm isn’t standard and implementation isn’t correct).

Todo

  • Generic core.sys.posix style wrappers for stdc that aren’t already in there that we use.
  • Generic command boilerplate for --help, --verbose, --version on all commands. Also provide a way to specify filename(s) as part of the command line spec.
  • Generic IO / logging / error boilerplate
  • ls / vdir / dir
  • cp
  • mv
  • rm
  • rmdir
  • ln
  • chmod
  • chown
  • touch
  • dd
  • df
  • du
  • chroot
  • cat
  • head
  • tail
  • sort
  • tr
  • uniq
  • wc
  • seq
  • sleep
  • test
  • md5sum / shasum / etc.
  • base64 / base32
  • paste
  • join
  • comm
  • fmt
  • fold
  • expand
  • pr
  • split
  • hostname
  • date
  • pwd
  • su
  • nice
  • who
  • id
  • groups
  • whoami
  • env
  • install
  • link
  • mkfifo
  • mknod
  • shred
  • unlink
  • chgrp
  • expr
  • factor
  • logname
  • nohup
  • patch
  • pinky
  • printenv
  • printf
  • stty
  • users
  • csplit
  • nl
  • od
  • ptx
  • sum
  • tac
  • … and anything else, see also: https://en.wikipedia.org/wiki/List_of_Unix_commands

Maybe ?

  • i18n
  • deesh the D language shell. It should have its own simple shell scripting language maybe based on D syntax (or like something) but with pipes and whatnot.
  • a fully chrootable environment written in D.
  • init? inetd? full userland?! kernel!!!???