Sorted out the outline for the final module of LGoTHW.

master
Zed A. Shaw 2 weeks ago
parent 8822e8fac2
commit a0d1313b7f
  1. 61
      README.md
  2. 118
      outline.txt

@ -1,5 +1,60 @@
# go-coreutils
This is an education project that attempts to reimplement the GNU coreutils in Go. You can find the full manual here:
https://www.gnu.org/software/coreutils/manual/coreutils.html
This is an education project that attempts to reimplement the GNU coreutils in Go. You can find the full manual here:
https://www.gnu.org/software/coreutils/manual/coreutils.html
## Go Packages to Teach
* bufio, io -- https://pkg.go.dev/bufio@go1.25.3
* container -- heap, list, or ring
* sha512 -- https://pkg.go.dev/crypto/sha512@go1.25.3
* image -- maybe an imagemagick?
* maps -- https://pkg.go.dev/maps@go1.25.3
* net -- https://pkg.go.dev/net@go1.25.3
* os -- https://pkg.go.dev/os@go1.25.3
* path -- probably all of them use it
* regex -- https://pkg.go.dev/regexp@go1.25.3
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
* strconv -- https://pkg.go.dev/strconv@go1.25.3
* time -- https://pkg.go.dev/time@go1.25.3
## Every Project Must Use
* testing -- https://pkg.go.dev/testing@go1.25.3
* flag -- https://pkg.go.dev/flag
## Possible Tools
* cat -- already made
* od -- already made
* wc -- https://www.gnu.org/software/coreutils/manual/coreutils.html#wc-invocation
- io, regex
* tr - https://www.gnu.org/software/coreutils/manual/coreutils.html#tr-invocation
* date - https://www.gnu.org/software/coreutils/manual/coreutils.html#date-invocation
* numfmt -- https://www.gnu.org/software/coreutils/manual/coreutils.html#numfmt-invocation
- strconv, strings, flags
* sha2sum -- https://www.gnu.org/software/coreutils/manual/coreutils.html#sha2-utilities
- sha512, bufio, io, time
* stat, du - https://www.gnu.org/software/coreutils/manual/coreutils.html#stat-invocation
- os, stat
* head, tail, split -- https://www.gnu.org/software/coreutils/manual/coreutils.html#Output-of-parts-of-files
- os, strings, bufio
* sort, uniq, comm -- https://www.gnu.org/software/coreutils/manual/coreutils.html#uniq-invocation
- maps, slices
* cut -- https://www.gnu.org/software/coreutils/manual/coreutils.html#join-invocation
- bufio, strings, slices, maybe maps
* nohup -- https://www.gnu.org/software/coreutils/manual/coreutils.html#nohup-invocation
- os, bufio, io
* ls - https://www.gnu.org/software/coreutils/manual/coreutils.html#ls-invocation
- path, root.fs, regex
* curl vs wget -- https://curl.se/
-- net/http, bufio, path
* grep -- https://www.gnu.org/software/grep/manual/
-- os, regex, strings, slices
* find -- https://www.gnu.org/software/findutils/manual/html_mono/find.html
- path, regex, os

@ -0,0 +1,118 @@
31 _cat_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html
* bufio, io -- https://pkg.go.dev/bufio@go1.25.3
* Mention using these in all of them:
* testing -- https://pkg.go.dev/testing@go1.25.3
* flag -- https://pkg.go.dev/flag
32 _od_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/od-invocation.html
* bufio, io -- https://pkg.go.dev/bufio@go1.25.3
33 _wc_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/wc-invocation.html
* bufio, io -- https://pkg.go.dev/bufio@go1.25.3
34 _tr_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
35 _date_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html
* time -- https://pkg.go.dev/time@go1.25.3
36 _numfmt_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/numfmt-invocation.html
* strings -- https://pkg.go.dev/strings@go1.25.3
* strconv -- https://pkg.go.dev/strconv@go1.25.3
37 _sha2sum_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/sha2-utilities.html
* sha512 -- https://pkg.go.dev/crypto/sha512@go1.25.3
38 _stat_ Then _du_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/du-invocation.html
* os -- https://pkg.go.dev/os@go1.25.3
* path -- probably all of them use it
* regex -- https://pkg.go.dev/regexp@go1.25.3
39 _head_, _tail_, and _split_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html
* https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html
* https://www.gnu.org/software/coreutils/manual/html_node/split-invocation.html
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
40 _sort_, and _uniq_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html
* https://www.gnu.org/software/coreutils/manual/html_node/uniq-invocation.html
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
* maps -- https://pkg.go.dev/maps@go1.25.3
41 _cut_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/cut-invocation.html
* bufio, io -- https://pkg.go.dev/bufio@go1.25.3
* maps -- https://pkg.go.dev/maps@go1.25.3
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
42 _nohup_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/nohup-invocation.html
* os -- https://pkg.go.dev/os@go1.25.3
43 _ls_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html
* os -- https://pkg.go.dev/os@go1.25.3
* path -- probably all of them use it
* regex -- https://pkg.go.dev/regexp@go1.25.3
44 _curl_ or _wget_
* My implemention is at https://lcthw.dev/go/go-coreutils
* Not sure which one to go with so try both.
* https://www.gnu.org/software/wget/manual/html_node/index.html
* https://curl.se/
* net -- https://pkg.go.dev/net@go1.25.3
45 _grep_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/grep/manual/html_node/index.html
* os -- https://pkg.go.dev/os@go1.25.3
* path -- probably all of them use it
* regex -- https://pkg.go.dev/regexp@go1.25.3
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
46 _find_
* My implemention is at https://lcthw.dev/go/go-coreutils
* https://www.gnu.org/software/findutils/manual/html_mono/find.html
* os -- https://pkg.go.dev/os@go1.25.3
* path -- probably all of them use it
* regex -- https://pkg.go.dev/regexp@go1.25.3
* slices -- https://pkg.go.dev/slices@go1.25.3
* strings -- https://pkg.go.dev/strings@go1.25.3
47 Conclusion
* Finish the course and talk about where to go next.
* https://pion.ly/
* https://ebitengine.org/
* https://github.com/charmbracelet/bubbletea
* https://caddyserver.com/
* https://github.com/chromedp/chromedp
* https://pocketbase.io/
* https://github.com/fyne-io/fyne
* https://gioui.org/
Loading…
Cancel
Save