srctree

README.md
e0e87235  Gregory Mullen # hsh eeee6802  Gregory Mullen ~~Don't use this, it's not ready!~~ 436112b8  Gregory Mullen You probably don't want to use this yet, but it's my current default shell (what 95153657  micwoj92 could go wrong) so it might work for you if you're brave enough. 436112b8  Gregory Mullen c2722782  Gregory Mullen Current technological breakthrough => "counting" 883e9368  Gregory Mullen bc569a34  Gregory Mullen Hash is a slightly different take on your shell. It's closer to a user agent b55c4560  Gregory Mullen than you standard POSIX shell. It's less of an instance, of a shell, and much b55c4560  Gregory Mullen closer to a system shell. E.g. when you add an alias in one instance, it becomes b55c4560  Gregory Mullen available on all instances as well. Changing a setting in one, updates it across b55c4560  Gregory Mullen all[^ephem]. bc569a34  Gregory Mullen bc569a34  Gregory Mullen [^ephem]: There ~~is~~ will eventually be an ephemeral mode to allow any instance b55c4560  Gregory Mullen to have it's own settings without affecting your other shells on the system. bc569a34  Gregory Mullen 03fcad2b  Gregory Mullen ## Goals b44152da  Gregory Mullen - Support *modern* pttys b44152da  Gregory Mullen - Composable vs decomposable mode d82ba323  Gregory Mullen - Less than 1h to migrate from any $SHELL (still considering reverts as well) d82ba323  Gregory Mullen - cd should not exec any payloads 03fcad2b  Gregory Mullen 03fcad2b  Gregory Mullen ## [De]composable mode 03fcad2b  Gregory Mullen A default, unconfigured install of hsh should enable all features and 03fcad2b  Gregory Mullen functionality. Running hsh non-interactive, or [other] should disable all c62c7af9  Gregory Mullen helful, or context aware features unless explicitly enabled. 03fcad2b  Gregory Mullen 95153657  micwoj92 ## Requirements 95153657  micwoj92 Compilation requires zig 0.12.0 or greater. 95153657  micwoj92 e0e87235  Gregory Mullen ## Install 38846e68  Gregory Mullen `git clone https://srctree.gr.ht/repo/hsh`<br> 805ca956  Gregory Mullen `zig build`<br> 805ca956  Gregory Mullen `./zig-out/bin/hsh` 805ca956  Gregory Mullen 436112b8  Gregory Mullen or `zig build -p /usr/` if you're brave enough to install into /usr/bin/hsh 436112b8  Gregory Mullen 95153657  micwoj92 Tests can be run with `zig build test` 95153657  micwoj92 e0e87235  Gregory Mullen ## TODO b44152da  Gregory Mullen - [x] basic parsing 66510af3  Gregory Mullen - [x] .hshrc support b44152da  Gregory Mullen - [x] exec ab795beb  Gregory Mullen - [x] friendly exec ab795beb  Gregory Mullen - [x] && success 4e046ca1  Gregory Mullen - [x] || failures 4e046ca1  Gregory Mullen - [x] ; cmd b44152da  Gregory Mullen - [ ] IoRedir b44152da  Gregory Mullen - [x] | func ab795beb  Gregory Mullen - [x] > std clobber 471e0267  Gregory Mullen - [x] >> std append b44152da  Gregory Mullen - [ ] 2> err clobber b44152da  Gregory Mullen - [ ] 2>&1 err to out 84fc4ed2  Gregory Mullen - [x] < in b44152da  Gregory Mullen - [ ] << here-doc; b44152da  Gregory Mullen - [ ] tab complete b44152da  Gregory Mullen - [x] cwd 2f8e3417  Gregory Mullen - [x] path 2f8e3417  Gregory Mullen - [x] subdirs 2f8e3417  Gregory Mullen - [x] basic fuzzy search 2f8e3417  Gregory Mullen - [ ] narrow fuzzy search c2722782  Gregory Mullen - [x] ~, and glob 2f8e3417  Gregory Mullen - [ ] the rest? b44152da  Gregory Mullen - [x] history b44152da  Gregory Mullen - [ ] advanced history b44152da  Gregory Mullen - [ ] sane error handling b44152da  Gregory Mullen - [ ] complex parsing b44152da  Gregory Mullen - [ ] context aware hints d72cd4f9  Gregory Mullen - [ ] HSH builtins 1a79bc30  Gregory Mullen - [ ] builtin d72cd4f9  Gregory Mullen - [ ] pipeline d72cd4f9  Gregory Mullen - [ ] help d72cd4f9  Gregory Mullen - [ ] show d72cd4f9  Gregory Mullen - [ ] state d72cd4f9  Gregory Mullen - [ ] status 8c948728  Gregory Mullen - [ ] POSIX builtins 0e1a36d6  Gregory Mullen - [x] alias b44152da  Gregory Mullen - [ ] bg b44152da  Gregory Mullen - [x] cd 963876f1  Gregory Mullen - [ ] popd b44152da  Gregory Mullen - [ ] colon 7f65512a  Gregory Mullen - [ ] date 7e0c9102  Gregory Mullen - [x] die b44152da  Gregory Mullen - [ ] disown b44152da  Gregory Mullen - [ ] dot 963876f1  Gregory Mullen - [x] echo b44152da  Gregory Mullen - [ ] eval b44152da  Gregory Mullen - [ ] exec c2722782  Gregory Mullen - [x] exit b44152da  Gregory Mullen - [ ] export b44152da  Gregory Mullen - [ ] fg 2f8e3417  Gregory Mullen - [x] jobs b44152da  Gregory Mullen - [ ] kill? b44152da  Gregory Mullen - [ ] pwd 9b89c050  Gregory Mullen - [ ] read b44152da  Gregory Mullen - [ ] set b44152da  Gregory Mullen - [ ] shift b44152da  Gregory Mullen - [ ] source b44152da  Gregory Mullen - [ ] unalias b44152da  Gregory Mullen - [ ] unset b44152da  Gregory Mullen - [ ] wait b44152da  Gregory Mullen - [ ] the rest? 1e1230d3  Gregory Mullen - [x] globs c93ad555  Gregory Mullen - [x] simple globs c93ad555  Gregory Mullen - [ ] recursive globs c93ad555  Gregory Mullen - [ ] enumerated globs (name.{ext,exe,md,txt}) b44152da  Gregory Mullen - [ ] script support? b44152da  Gregory Mullen - [ ] logic (if, else, elif, case) c2722782  Gregory Mullen - [x] if c2722782  Gregory Mullen - [x] elif c2722782  Gregory Mullen - [x] else c2722782  Gregory Mullen - [ ] while c2722782  Gregory Mullen - [ ] for c2722782  Gregory Mullen - [ ] case b44152da  Gregory Mullen - [ ] loops (for, while) b44152da  Gregory Mullen - [ ] env b44152da  Gregory Mullen - [ ] real path support b44152da  Gregory Mullen - [ ] debugging configuration e0e87235  Gregory Mullen 4e046ca1  Gregory Mullen ## notes 4e046ca1  Gregory Mullen (`zig build run` does some magic that causes hsh to segv) d941dbcc  Gregory Mullen d941dbcc  Gregory Mullen ## Contributors d941dbcc  Gregory Mullen @SteampunkEngine d941dbcc  Gregory Mullen