PuZZleDucK / Hls

Haskell implementation of unix ls

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Haskell clone of coreutils

This has turned into a vain attempt to recreate the GNU coreutils programs in Haskell, for no particular reason... Maybe someday some student called Hlinus will write a kernel and this will then come in handy.

Now with bonus: Hlolcat

Continuious Integration

Build Status

App is hosted on semaphore which sets up Haskell and attempts to run demo program.

Progress so far:

Done:

  • lolcat ==> Hlolcat (fully functional)
  • yes ==> Hyes (works, updated)
  • whoami ==> Hwhoami (done, update needed)
  • basename ==> Hbasename (done, update needed)
  • ls ==> Hls (work in progress, needs to work on real IO, colors, formats..., update needed)
  • uniq ==> Huniq (Started, lots to do, almost all, need repl loop, update needed)
  • echo ==> Hecho (mostly working, update needed)
  • true / false ==> Htrue / Hfalse (skeleton, update needed)
  • seq ==> Hseq (basic functionality working, update needed)
  • cat ==> Hcat (multiple files and seperators working, update needed)
  • head ==> Hhead (line count, update needed)
  • printenv ==> Hprintenv (update needed)
  • pwd ==> Hpwd (Started, but will need redo, update needed)
  • sort ==> Hsort (Options and text, update needed)
  • touch ==> Htouch (Options and text, update needed)
  • shuf ==> Hshuf (Started, argument redo, messy, update needed)
  • truncate ==> Htruncate (Options with params trial, update needed)
  • sleep ==> sleep (works, but not accurate time, update needed)
  • rmdir ==> Hrmdir (basic deleting works, not all flags obeyed, update needed)
  • mkdir ==> Hmkdir (basic making works, " " " ", update needed)

ToDo - Interesting:

  • users ==> skeleton
  • tr
  • shred
  • printf (prereq for many others)
  • mkfifo / mknod / mktemp
  • md5sum / cksum / sum
  • link / ln / unlink
  • kill
  • env
  • dd
  • df
  • chroot
  • date

ToDo - Easy:

  • uptime / groups / hostid / hostname
  • uname / uname-arch / uname-uname
  • tail
  • split
  • rm / mv / cp / chgrp / chmod / chown
  • nice
  • du
  • wc (prototype done)

Hard - Have other prerequisites:

  • tee
  • stty
  • stat
  • stdbuf

Unknown - What do they even do?:

  • who
  • unexpand
  • tsort
  • tty
  • test
  • timeout
  • sync
  • tac
  • tac-pipe
  • runcon
  • selinux
  • readlink
  • realpath
  • relpath
  • remove
  • prog-fprintf
  • ptx
  • nl
  • nohup
  • nproc
  • numfmt
  • od
  • operand2sig
  • paste
  • pathchk
  • pinky
  • pr
  • ls-dir / ls-ls / ls-vdir
  • make-prime-list
  • logname
  • find-mount-point
  • fmt
  • fold
  • getlimits
  • group-list
  • id
  • install
  • ioblksize
  • join
  • lbracket
  • libstdbuf
  • expand
  • expr
  • extent-scan
  • factor
  • dircolors
  • dirname
  • cp-hash
  • csplit
  • cut
  • comm
  • copy
  • base64
  • chcon

Major deps:

  • System.Console.Terminfo.Cursor
  • System.Environment

About

Haskell implementation of unix ls

License:GNU General Public License v3.0


Languages

Language:Haskell 100.0%