Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
356 commits
Select commit Hold shift + click to select a range
950c0cb
echo-math: use new `echo-quote --always=no` for more readable failures
balupton Jun 26, 2025
4cefed7
fix bad and inconsistent `--elevate` option handling
balupton Jun 26, 2025
db38f66
bash.bash: fix bad `__get_epoch_time` refactor
balupton Jun 26, 2025
9fa2144
echo-math: fix bash v3 compat with `__split`
balupton Jun 26, 2025
b3cd87c
fix various `__split` string/array type conflicts
balupton Jun 27, 2025
c7a1a8a
`bash.bash:__is_var_set` now true on array indexes
balupton Jun 27, 2025
421574a
is-{even,odd}: adjust edge case tests for changed behaviour
balupton Jun 27, 2025
dccedc7
is-shapeshifter: fix tests
balupton Jun 27, 2025
f772eb9
`eval-tester`: fix bad `fs-diff` call
balupton Jun 27, 2025
7e78024
echo-trim-special: progress towards fixed test
balupton Jun 27, 2025
4d9fc96
read-key: rewrite for upcoming extensibility
balupton Jun 30, 2025
eaf7da2
echo-trim-special: fix tests
balupton Jul 3, 2025
05f4ca8
workaround `$'\001'` bugs in older bash versions
balupton Jul 4, 2025
bed3f58
complete workaround of bash `$'\001'` bugs
balupton Jul 5, 2025
cfbcc8d
`get-flag-value` to `bash.bash:__flag`
balupton Jul 5, 2025
3b23a39
various test fixes
balupton Jul 5, 2025
e3ced0d
linting and leftovers from cfbcc8d5cb5d8610796b4f398e5da4381e8e7c47
balupton Jul 6, 2025
e9e1187
fs-own: fix performance degradation from `is-*` fs helpers
balupton Jul 6, 2025
b34a374
ci: runner for each bash version
balupton Jul 6, 2025
bd79423
change debug handling to avoid conflicts with go
balupton Jul 7, 2025
7bb7c62
fs-rm: fix trash crash on windows
balupton Jul 7, 2025
08ddf51
dorothy: fix pass/failure on only env bash tests
balupton Jul 7, 2025
cf6f1b3
setup-util: fix bad `__split` adoption
balupton Jul 7, 2025
2c22e85
setup-util-deno: disable cargo on WSL
balupton Jul 7, 2025
37a430b
add `is-windows`
balupton Jul 7, 2025
a2a568c
debug-bash, setup-util-bash: coerce versions into supported versions
balupton Jul 7, 2025
c1fd88b
WIP: dorothy-internals
balupton Jul 9, 2025
a795f1f
bash.bash: debug `BASH_XTRACEFD` failure on CI
balupton Jul 11, 2025
bdf81a5
do: trailing-newlines now opt-in to mimic bash
balupton Jul 12, 2025
433ab04
dorothy-internals: robust failure checks
balupton Jul 12, 2025
af4cd6d
eval-tester: attempt at fixing window ci failures
balupton Jul 13, 2025
c4d6bd2
reduce bash 4.2 and 4.3 to unsupported
balupton Jul 13, 2025
7893ba6
dorothy, debug-bash: fix `dorothy-internals` always being run with en…
balupton Jul 13, 2025
8318ebd
adjustments for better bash 4.1 support
balupton Jul 13, 2025
2a3a6fd
bash.bash: and ghostty ansi sequences and docs
balupton Jul 13, 2025
1061181
ci: disable the windows tests as LF becomes CRLF
balupton Jul 14, 2025
e7dd9aa
ci: disable unsupported bash versions
balupton Jul 14, 2025
f9ab2a3
setup-util-wget: add other package managers
balupton Jul 14, 2025
abc6707
down, setup-util-wget: fedora uses wget2
balupton Jul 15, 2025
b6d8835
`bash.bash:__{flag,dereference}`: consistency
balupton Jul 15, 2025
e63c3fb
down: wget/wget1/wget2 detection
balupton Jul 15, 2025
3e390dc
get-app: improve performance of scoop lookups
balupton Jul 15, 2025
586cd09
bash.bash: fix/test login/current users
balupton Jul 15, 2025
3988685
`bash.bash:__{has,index}`: tests, fixes
balupton Jul 16, 2025
85185c0
bash.bash: re-arrange some internal functions
balupton Jul 16, 2025
03c0bed
`bash.bash:__{index,slice,evict}`: fixes
balupton Jul 17, 2025
de522f9
`bash.bash:__{has,index}`: new super function
balupton Jul 18, 2025
5d1a41e
bash.bash: new `__iterate` super function
balupton Jul 19, 2025
a31785c
bash.bash: finish `__iterate` super function
balupton Jul 21, 2025
cde4125
`__evict` to `__replace`
balupton Jul 24, 2025
961ad0e
bash.bash: debug `__iterate` empty source error
balupton Jul 24, 2025
2c752c4
bash.bash: `__{has,evict}` won't crash if source is empty
balupton Jul 24, 2025
963a95a
setup-environment-commands: fixes
balupton Jul 24, 2025
fad0cfc
bash.bash: efficient __unique
balupton Jul 24, 2025
e280646
*: fix some `__flag` convention leftovers from b6d8835fb99fe351a14877…
balupton Jul 24, 2025
f5f4b1f
dorothy-internals: use new `fixtures` directory
balupton Jul 25, 2025
bc9a97e
ci: linting
balupton Jul 25, 2025
e83766e
dorothy-internals: continue improving tests
balupton Jul 26, 2025
a12c62c
dorothy-internals: continue test improvement
balupton Jul 27, 2025
a25f215
dorothy-internals: add extra array tests
balupton Jul 27, 2025
c33716d
*: fix bad `__{slice,replace,join}` calls
balupton Jul 28, 2025
d75b7b5
fix homebrew deprecations
balupton Jul 28, 2025
3e92362
fs-path: fix bad `__{replace,evict}` adoption
balupton Jul 28, 2025
4bdfbb8
convention adoption and linting
balupton Jul 28, 2025
0b0cc8e
ask: fix bad `__flag` refactor
balupton Jul 28, 2025
be20152
fs-type: fix tests on suse
balupton Jul 28, 2025
6111a6f
debug-terminal: robustify for ci failures
balupton Jul 28, 2025
0b7d34b
debug-terminal: more robust for ci failures
balupton Jul 28, 2025
0b47568
debug-terminal: workaround for ci failures
balupton Jul 29, 2025
999e8ce
get-app: fix `Finder` not being detected, add `--id` for getting appl…
balupton Jul 31, 2025
d85a9b2
echo-substr: restore functionality to ensure it remains compatible wi…
balupton Aug 13, 2025
f6a20f8
minor commenting/docs/help updates
balupton Aug 1, 2025
fb16adb
bash.bash:__reverse: fix string input
balupton Aug 13, 2025
14633e7
bash.bash: note as comment potential deprecation of `__slice`'s `--ke…
balupton Aug 13, 2025
66b72a5
bash.bash: implement `__case` for `__iterate`
balupton Aug 19, 2025
311fce4
fixes to bash.bash helpers, tests, conventions
balupton Aug 26, 2025
b7541fc
dorothy-internals: fix tests on CI
balupton Aug 26, 2025
c2b9f21
dorothy-internals: disable `__iterate` tests on CI
balupton Aug 28, 2025
70c6052
eval-tester, bash.bash: fix time delta macos <15
balupton Aug 28, 2025
e0f1588
dorothy-internals: test __iterate on ci if new bash, as that is faster
balupton Aug 28, 2025
252176e
eval-helper, dorothy: wrap with time deltas for tests
balupton Sep 5, 2025
ec79247
fs-path: fix edge cases, update tests
balupton Aug 30, 2025
4a5bb11
fix `checksum` tests, add `echo-json`
balupton Sep 3, 2025
4458245
edit: fix arg/path handling regression from WIP
balupton Sep 5, 2025
6ef255f
is-same: fix tests
balupton Sep 5, 2025
8edf70a
stdinargs, dorothy-internals: fix performance
balupton Sep 5, 2025
52dec64
remove custom styles config for performance
balupton Sep 5, 2025
9028fd1
inline `echo-style` as `__print_style`
balupton Sep 6, 2025
be61da0
echo-json: remove perl implementation
balupton Sep 6, 2025
614f2b6
fs-path: fix named pipes on linux
balupton Sep 8, 2025
373ac7c
bash.bash: __flag: support custom yes/no
balupton Sep 8, 2025
4c52272
echo-json and co: fix missing dependencies
balupton Sep 8, 2025
d7e5e4b
bash.bash: consistent affirmative checks
balupton Sep 8, 2025
0131d19
add `setup-util-find`
balupton Sep 8, 2025
3a6a75c
dorothy/ci: debug `/etc/os-release`
balupton Sep 8, 2025
a3165c1
bash.bash: the unset was unnecessary
balupton Sep 8, 2025
4c08b0d
fs-type: fix tests on `opensuse/leap`
balupton Sep 8, 2025
d35d483
checksum: fix on opensuse
balupton Sep 8, 2025
b97c7b4
echo-json: tests: ignore tty on first call
balupton Sep 8, 2025
7c04977
echo-math: drop perl implementation
balupton Sep 8, 2025
a792418
comamnd-working: fix find/xargs
balupton Sep 8, 2025
7ec20a4
is-bash-version-outdated: fix output, fix tests
balupton Sep 8, 2025
24dd8bf
`__tool`, `__require_command`, `__print_style`
balupton Sep 9, 2025
5c4267b
fs-size: fix and improve tool handling
balupton Sep 9, 2025
784cf90
fs-size: cross-os du updates
balupton Sep 9, 2025
09e37fc
fs-size: tests: reflect du bytes fails on macos
balupton Sep 10, 2025
e959fec
ci: trunk: add comments that describe linters (#302)
samgutentag Sep 13, 2025
5ba73ca
ci: linting
balupton Sep 16, 2025
9791b0f
echo-revolving-door: fix regression
balupton Sep 16, 2025
70a2d95
ci: upgrade and fix linting, and backers
balupton Sep 16, 2025
7db1d98
brew, eval-helper, setup-mac-brew: fixes
balupton Sep 17, 2025
c4c8244
ci: add `macos-26`, disable u`buntu-24.04-arm`
balupton Sep 17, 2025
99a72bb
get-arch: `--dump`, dorothy: source `styles.bash`
balupton Sep 17, 2025
e510b76
bash.bash: extract ANSI to `sources/ansi.bash`
balupton Sep 18, 2025
61f5331
get-macos-release-name: add 26/tahoe
balupton Sep 18, 2025
1e7a637
cpr: better help styling
balupton Sep 18, 2025
cfab42c
setup-util-xcode: fix a deprecated call
balupton Sep 18, 2025
4ac4e86
echo-revolving-door: move __split_shapeshifting to ansi.bash
balupton Sep 18, 2025
2a562ef
echo-revolving-door: update docs
balupton Sep 18, 2025
8d1f10a
down: fix test expectations
balupton Sep 18, 2025
eb3a5b2
bash.bash: require bash 5.1+ on suse
balupton Sep 18, 2025
88aebda
echo-math, bash.bash: support bash 5.3 fltexpr
balupton Sep 19, 2025
1c284a9
debug-terminal: CI arm workaround
balupton Sep 19, 2025
13f1598
setup-util-bash: support patches, use mirrors
balupton Sep 19, 2025
69a79f2
ci: lint
balupton Sep 22, 2025
e3c69e9
dorothy: fix help formatting
balupton Sep 22, 2025
22ae17a
`__print_style` support vars, `git-helper` rewrote
balupton Sep 24, 2025
e2d9781
oz: Ghostty 1.2.0 broke colored terminal prompts
balupton Sep 26, 2025
d59f7f9
bash.bash, nu.nu: add terminal title progress bars
balupton Sep 26, 2025
012cf89
eval-helper: correct help, pause complex tests
balupton Sep 27, 2025
65dd45a
get-codec: rewrote for comprehensive retrieval
balupton Oct 1, 2025
9eb687b
ytd-helper: rewrote to avoid conflicts with arguments
balupton Oct 1, 2025
af73017
bash.bash: fix `__replace` on arrays
balupton Oct 1, 2025
4add2a5
bash.bash: `__terminal_title_progress_bar` fixes
balupton Oct 1, 2025
c169f51
rewrite `echo-file`, `is-same`, add `__print_help`
balupton Oct 1, 2025
d3ef3b7
autocomplete: remove old gh copilot, remove tea
balupton Oct 3, 2025
c396efb
bash.bash: `__is_affirmative` now used for `__is_non_affirmative`
balupton Oct 3, 2025
96093cf
echo-file: fix `--help`
balupton Oct 3, 2025
f11e61c
echo-file, __command_required, is-fs: fixes
balupton Oct 4, 2025
a075b3d
setup-util-bat: update sources
balupton Oct 4, 2025
882a155
bash.bash: `__command_required` remove cache
balupton Oct 4, 2025
17ef4a5
echo-file: tests: handle bat installs when secondary dep install meth…
balupton Oct 4, 2025
76cb4ea
stdinargs: `__stdinargs__help_options`
balupton Oct 4, 2025
ca1a89d
echo-unique, setup-util-bash: fix patch dupes
balupton Oct 4, 2025
880f6ef
echo-file: support process subtitutions
balupton Oct 4, 2025
8468e64
echo-file: add combined test, inc files
balupton Oct 4, 2025
74af11f
debug-terminal, get-codec: use `echo-json`
balupton Oct 7, 2025
d6e8b2a
bash.bash: remove `__print_without_styles`
balupton Oct 8, 2025
df8404c
get-codec: fix tests, install `mediainfo`
balupton Oct 8, 2025
548a951
setup-util-bat: disable outdated zypper
balupton Oct 8, 2025
94e0256
ci: update deps
balupton Oct 8, 2025
cb1ac6e
choose, confirm, echo-clear-lines: source commands
balupton Oct 9, 2025
51192a8
confirm: use `__to` for bell outputs
balupton Oct 9, 2025
9c6d862
bash.bash: fix `setup-environment-commands --debug`
balupton Oct 9, 2025
e651d31
setup-environment-commands: fix cache expired message
balupton Oct 9, 2025
a6da0a4
oz: re-enable coloured prompts for Ghostty
balupton Oct 9, 2025
7271147
setup-util-nerd-fonts: fixed it
balupton Oct 9, 2025
4df507a
confirm: new styles, styles.bash: rework
balupton Oct 9, 2025
224f464
bash.bash: add `__get_date` helper
balupton Oct 12, 2025
6bec8d0
setup-environment-commands: cache to 30 mins
balupton Oct 12, 2025
f38f2fe
ci: linting
balupton Oct 12, 2025
f56b4aa
confirm: fix prompt, result, and no-color styles
balupton Oct 12, 2025
423c9b3
ansi.bash: inline `__read_key`, confirm: fix clearing
balupton Oct 12, 2025
3028f63
echo-clear-lines: undo cb1ac6e62a83c083f2210cd91a66472eb0a07751
balupton Oct 12, 2025
889333a
echo-wrap, ansi.bash: fix bad `__should_wrap`
balupton Oct 12, 2025
1ad7678
echo-wrap: fix `--width=0`
balupton Oct 12, 2025
ae18512
styles.bash:__print_help: remove WIP/debug comments
balupton Oct 12, 2025
fe4d41a
lint: use `__is_function_defined`
balupton Oct 15, 2025
a459dbc
bash.bash: fix `__get_date`, add `__get_epoch_seconds`
balupton Oct 15, 2025
4e4177a
cpr: remove problematic complexity, and drop gcp
balupton Oct 15, 2025
e5925d5
ci: note deno version upgrade
balupton Oct 15, 2025
fc14b5d
ci: add openmandriva
balupton Oct 15, 2025
0e4c354
get-codec: fix tests on CI
balupton Oct 15, 2025
8dd752f
get-codec: again try and fix tests on CI
balupton Oct 16, 2025
207f206
*: fixes, setup-python: support `uv`
balupton Oct 16, 2025
68891b5
setup-util-wget: attempt fix fedora issues
balupton Oct 16, 2025
fe22c35
ci: attempt add vanilla os
balupton Oct 16, 2025
17424bc
ci: lint
balupton Oct 16, 2025
20ba720
ci: drop vanillaos core-image, keep pico
balupton Oct 16, 2025
f8ac841
down: better debug fedora wget failures
balupton Oct 16, 2025
c4b2374
down: fix fedora wget handling, fix wrap
balupton Oct 16, 2025
1d0ba22
down: fedora wget still trying to wget2
balupton Oct 16, 2025
738ae99
down: fix fedora installing wget2
balupton Oct 16, 2025
a7fa93e
down: fix fedora not detecting wget1
balupton Oct 16, 2025
72d9ecc
*: use `TMPDIR` instead of `XDG_CACHE_HOME`
balupton Oct 18, 2025
6a41d23
*: use `printf -v <var>` where appropriate
balupton Oct 21, 2025
741723f
ci: linting
balupton Oct 21, 2025
e9b88b6
versions.md: more precise and thorough
balupton Oct 21, 2025
18c8330
ci: linting
balupton Oct 21, 2025
afcfc73
setup-util-monaco: drop cask
balupton Oct 21, 2025
391fafc
setup-util-monoid: fix Monoid name
balupton Oct 21, 2025
77175ed
video-merge: m4b support, video -> media
balupton Oct 21, 2025
c2554d4
debug-bash: `eval-helper` dropped `--command`
balupton Oct 21, 2025
49ee0f4
dorothy: update help, styling, and arg parsing
balupton Oct 21, 2025
8d26743
eval-tester, eval-helper: use new `echo-duration`
balupton Oct 21, 2025
ba99b25
echo-duration: maintain milliseconds in output
balupton Oct 21, 2025
3b46267
cpr:fs-copy, fs-mv:fs-move, fs-rm:fs-remove
balupton Oct 22, 2025
0a11c8a
fs-move: clearer help docs
balupton Oct 22, 2025
00f6e34
ci: add devuan
balupton Oct 22, 2025
b2c5bcb
ci: lint
balupton Oct 22, 2025
b7e4a8e
*: `--elevate` should be `--no-coerce`
balupton Oct 22, 2025
a9be4c9
fs-{copy,link,move,remove}: improvements
balupton Oct 22, 2025
626d6d4
ci: linting
balupton Oct 22, 2025
bba03da
ci: linting
balupton Oct 22, 2025
f57c772
dorothy: fix dorothy and user detection/creation
balupton Oct 22, 2025
99a5eb4
ci: add almalinux
balupton Oct 22, 2025
082a670
fs-type, setup-util-mediainfo: fix alma tests
balupton Oct 22, 2025
ef3f329
setup-util-nu: prefer musl, add solus, suse, alma
balupton Oct 22, 2025
53f9301
ci: fix disable of shellcheck SC2329
balupton Oct 22, 2025
3eab9b5
setup-shell: attempt fix chsh ci error
balupton Oct 22, 2025
c469423
setup-util-mediainfo: disable broken repo rpm
balupton Oct 24, 2025
d9a2e05
*: ensure all `grep` have explicit type args
balupton Oct 24, 2025
67287ca
ci: re-enable alpine
balupton Oct 24, 2025
49a023c
ci: disable alpine again, as deno is still broken
balupton Oct 25, 2025
11c42b6
bash.bash: fix `__split`, faster `__dereference`
balupton Oct 25, 2025
ed37be8
dorothy-internals: fix `--only`
balupton Oct 25, 2025
96a321c
styles: improve performance by reducing var checks
balupton Oct 25, 2025
2f92529
bash.bash: performant partial var checks
balupton Oct 25, 2025
1e5e40c
ci: lint
balupton Oct 25, 2025
4306bdb
`fixtures/` now `bevry/dorothy-fixtures`
balupton Oct 25, 2025
9527629
`dorothy` move git clone to `git-helper`
balupton Oct 30, 2025
99e2b71
git-helper: fixes /re 95276294241e0378c2fae0e94dde86535080a9c8
balupton Oct 30, 2025
af5581a
dorotohy, git-helper: fix tests
balupton Oct 30, 2025
1ee2e66
git-helper: fix http/https protocol accident
balupton Oct 30, 2025
3352fcf
git-helper: fix protocol not defaulting to first
balupton Oct 30, 2025
a2c3000
git-helper: better protocol defaulting
balupton Oct 30, 2025
30495fc
bash.bash: fix `__tool` bug from `__dereference` regression
balupton Oct 30, 2025
bacc60e
ci: linting
balupton Oct 30, 2025
4c32f7a
`styles.bash:__print_help` add newline between help and error
balupton Oct 30, 2025
6ca1646
setup-shell: safety, bash.bash: new helpers
balupton Oct 31, 2025
99fc2d6
dorothy, git-helper: sync fixes
balupton Oct 31, 2025
0fdc2a9
setup-shell: fix regression
balupton Oct 31, 2025
b7fde4d
bash.bash: fix a regression
balupton Oct 31, 2025
6362a37
git-helper: remove dupes from protocol defaults
balupton Oct 31, 2025
57d9c87
git-helper: fixes
balupton Oct 31, 2025
1b14732
waiter: fix regression
balupton Oct 31, 2025
b319541
oz: fix zsh compat
balupton Oct 31, 2025
9faffb9
date-helper: fix `--month-ago` on smaller months
balupton Oct 31, 2025
7e375f4
date-helper: fix `--month-ago` on macos
balupton Oct 31, 2025
a96d72e
installation fixes
balupton Nov 1, 2025
5cee5af
git-helper: fix slug parsing
balupton Nov 1, 2025
4aff69d
dorothy: fix `setup-shell` call
balupton Nov 1, 2025
0c34634
get-profile: fix name errors on linux
balupton Nov 1, 2025
b166ed1
add is-rpm, setup-util-mediainfo: fix deb repo, add rpm repo
balupton Nov 1, 2025
268c553
setup-shell: fix double --reconfigure issue
balupton Nov 1, 2025
21400b8
git-helper: pref branch order, cleaner sync outputs
balupton Nov 1, 2025
9ab2270
echo-json: fix tests on mandriva
balupton Nov 1, 2025
53db018
Waiter: cleaner waiting on CI
balupton Nov 1, 2025
2546e07
ci, readme: uupdate linux distros
balupton Nov 1, 2025
2f27ebe
ci: drop rockylinux, github fails to pull it
balupton Nov 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
96 changes: 74 additions & 22 deletions .github/workflows/dorothy-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ jobs:
setup-util-ksh
setup-util-carapace
dorothy --slug=${{ github.event.pull_request.head.repo.full_name || github.repository }} install
# nu -c 'echo $nu.loginshell-path'
- name: 'Dorothy Login Shell: bash'
shell: bash -leo pipefail {0}
run: |
Expand All @@ -109,13 +108,7 @@ jobs:
command-exists -- dorothy
echo-style --success='ok'
- name: 'Dorothy Login Shell: xonsh'
env:
PKG_CONFIG_PATH: '' # fix: https://github.com/bevry/dorothy/actions/runs/6349881708/job/17248752072#step:8:8
LDFLAGS: '' # fix: https://github.com/bevry/dorothy/actions/runs/6349927188/job/17248892389#step:8:9
CPPFLAGS: '' # fix: https://github.com/bevry/dorothy/actions/runs/6349956372/job/17248986621#step:8:10
CXX: '' # fix: https://github.com/bevry/dorothy/actions/runs/7538723888/job/20519802798#step:8:12
CC: '' #fix: https://github.com/bevry/dorothy/actions/runs/7538922544/job/20520381661#step:8:13
shell: xonsh -DXONSH_SHOW_TRACEBACK=True -l {0}
shell: xonsh -DXONSH_SHOW_TRACEBACK=True -DXONSH_TRACEBACK_LOGFILE=xonsh.log -l {0}
run: |
command-exists -- dorothy
echo-style --success='ok'
Expand Down Expand Up @@ -146,7 +139,7 @@ jobs:
# commit changes, if any
cd "$DOROTHY"
if git diff --quiet &>/dev/null; then
echo 'Already formatted.'
printf '%s\n' 'Already formatted.'
else
git config --global user.name 'Continuous Integration'
git config --global user.email '[email protected]'
Expand All @@ -164,30 +157,56 @@ jobs:
fail-fast: false
matrix:
runner:
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#standard-github-hosted-runners-for-public-repositories
- ubuntu-24.04
- ubuntu-22.04
- ubuntu-24.04-arm
- ubuntu-22.04-arm
# - windows-2025 <-- windows changes the line endings in our source files, disrespecting our .gitattributes, so disable until that is fixed
# - windows-2022 <-- ^^
# - windows-11-arm <-- deno doesn't yet support windows arm
# macos tests are done later as they need their own bash handling
runs-on: ${{ matrix.runner }}
steps:
- name: 'Dorothy Test'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # prevent rate limiting
shell: bash -leo pipefail {0}
run: |
# ensure dorothy is cloned, and run command
bash -c "$(curl -fsSL 'https://dorothy.bevry.me/run?slug=${{ github.event.pull_request.head.repo.full_name || github.repository }}&commit=${{ github.event.pull_request.head.sha || github.sha }}')" -- dorothy test
macos-test:
if: github.event_name == 'push' || ( github.event_name == 'pull_request' && toJson(github.event.pull_request.draft) == 'false' && toJson(github.event.pull_request.state) == '"open"' && toJson(github.event.pull_request.assignees) != '[]' )
strategy:
fail-fast: false
matrix:
runner:
- macos-26
- macos-15
- macos-14
- macos-13
bash:
- bash
- /bin/bash # this Bash 3.2 version actually behaves differently to GNU Bash 3.2 version
runs-on: ${{ matrix.runner }}
steps:
- name: 'Dorothy Test'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # prevent rate limiting
run: |
# ensure dorothy is cloned, and run command
bash -c "$(curl -fsSL 'https://dorothy.bevry.me/run?slug=${{ github.event.pull_request.head.repo.full_name || github.repository }}&commit=${{ github.event.pull_request.head.sha || github.sha }}')" -- dorothy test
bash -c "$(curl -fsSL 'https://dorothy.bevry.me/run?slug=${{ github.event.pull_request.head.repo.full_name || github.repository }}&commit=${{ github.event.pull_request.head.sha || github.sha }}')" -- dorothy test --bash="${{ matrix.bash }}"
fresh-macos-test:
if: github.event_name == 'push' || ( github.event_name == 'pull_request' && toJson(github.event.pull_request.draft) == 'false' && toJson(github.event.pull_request.state) == '"open"' && toJson(github.event.pull_request.assignees) != '[]' )
strategy:
fail-fast: false
matrix:
runner:
- macos-26
- macos-15
- macos-14
- macos-13
bash:
- bash
- /bin/bash # this Bash 3.2 version actually behaves differently to GNU Bash 3.2 version
runs-on: ${{ matrix.runner }}
steps:
- name: 'Uninstall Homebrew'
Expand All @@ -199,26 +218,60 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # prevent rate limiting
run: |
# ensure dorothy is cloned, and run command
bash -c "$(curl -fsSL 'https://dorothy.bevry.me/run?slug=${{ github.event.pull_request.head.repo.full_name || github.repository }}&commit=${{ github.event.pull_request.head.sha || github.sha }}')" -- dorothy test
bash -c "$(curl -fsSL 'https://dorothy.bevry.me/run?slug=${{ github.event.pull_request.head.repo.full_name || github.repository }}&commit=${{ github.event.pull_request.head.sha || github.sha }}')" -- dorothy test --bash="${{ matrix.bash }}"
all-bash-versions-test:
if: github.event_name == 'push' || ( github.event_name == 'pull_request' && toJson(github.event.pull_request.draft) == 'false' && toJson(github.event.pull_request.state) == '"open"' && toJson(github.event.pull_request.assignees) != '[]' )
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
bash:
- '3.2.57'
- '4.0'
# - '4.1' <-- see notes in `bash.bash`
# - '4.2.53' <-- see notes in `bash.bash`
# - '4.3.30' <-- see notes in `bash.bash`
- '4.4.18'
- '5.0'
- '5.1.16'
- '5.2.37'
- '5.3'
# This should match all versions known in `bash.bash` and include in `continue-on-error` the unsupported versions
steps:
- name: 'Dorothy Test'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # prevent rate limiting
continue-on-error: ${{ matrix.bash == '4.1' || matrix.bash == '4.2.53' || matrix.bash == '4.3.30' }}
run: |
# ensure dorothy is cloned, and run command
bash -c "$(curl -fsSL 'https://dorothy.bevry.me/run?slug=${{ github.event.pull_request.head.repo.full_name || github.repository }}&commit=${{ github.event.pull_request.head.sha || github.sha }}')" -- dorothy test --bash-version="${{ matrix.bash }}"
container-test:
if: github.event_name == 'push' || ( github.event_name == 'pull_request' && toJson(github.event.pull_request.draft) == 'false' && toJson(github.event.pull_request.state) == '"open"' && toJson(github.event.pull_request.assignees) != '[]' )
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container:
# https://hub.docker.com/search?badges=official
- 'ubuntu:latest' # https://hub.docker.com/_/ubuntu
- 'fedora:latest' # https://hub.docker.com/_/fedora
- 'debian:latest' # https://hub.docker.com/_/debian
- 'alpine:latest' # https://hub.docker.com/_/alpine <-- script -qec workaround for TTY does not work on alpine
- 'opensuse/leap' # https://hub.docker.com/r/opensuse/leap <-- has outdated bash, so is good to test
- 'opensuse/tumbleweed' # https://hub.docker.com/r/opensuse/tumbleweed
- 'kalilinux/kali-rolling' # https://hub.docker.com/r/kalilinux/kali-rolling <-- apt based
# - 'manjarolinux/base' # https://hub.docker.com/r/manjarolinux/base <-- broken due to https://gitlab.manjaro.org/packages/core/bash/-/issues/8 trying to remove it, trying to sync/refresh it, trying everything fails, as such disabled test, see all the failed CI attempts sinc: https://github.com/bevry/dorothy/actions/runs/7999660175/job/21847844816#step:3:84
- 'fedora:latest' # https://hub.docker.com/_/fedora
- 'archlinux:latest' # https://hub.docker.com/_/archlinux
- 'almalinux:latest' # https://hub.docker.com/_/almalinux
- 'openmandriva/minimal:rock' # https://hub.docker.com/r/openmandriva/minimal
- 'openmandriva/minimal:rolling' # https://hub.docker.com/r/openmandriva/minimal
- 'devuan/devuan:latest' # https://hub.docker.com/r/devuan/devuan
- 'opensuse/leap:latest' # https://hub.docker.com/r/opensuse/leap <-- has outdated bash, so is good to test
- 'opensuse/tumbleweed:latest' # https://hub.docker.com/r/opensuse/tumbleweed
- 'kalilinux/kali-rolling:latest' # https://hub.docker.com/r/kalilinux/kali-rolling <-- apt based
- 'ghcr.io/vanilla-os/pico:main' # https://github.com/vanilla-os/pico-image/pkgs/container/pico <-- there is also `ghcr.io/vanilla-os/core:latest` from https://github.com/Vanilla-OS/core-image/pkgs/container/core/544319268?tag=latest however it is too heavy for github actions, `failed to register layer: max depth exceeded`
# - 'alpine:latest' # https://hub.docker.com/_/alpine <-- official deno is broken on alpine https://github.com/denoland/deno_install/issues/311 https://github.com/denoland/deno/issues/3711 but `setup-util-deno` supports a third party deno that gets updated every few months however its broken for some reason https://github.com/bevry/dorothy/actions/runs/18792197623/job/53624940079#step:4:71
# - 'manjarolinux/base' # https://hub.docker.com/r/manjarolinux/base <-- broken due to https://gitlab.manjaro.org/packages/core/bash/-/issues/8 trying to remove it, trying to sync/refresh it, trying everything fails, as such disabled test, see all the failed CI attempts since: https://github.com/bevry/dorothy/actions/runs/7999660175/job/21847844816#step:3:84
# - 'voidlinux/voidlinux' # https://hub.docker.com/r/voidlinux/voidlinux <-- locale failure, remote failure: https://github.com/bevry/dorothy/actions/runs/6622814794/job/17988863384
# - 'mageia:cauldron' # https://hub.docker.com/_/mageia <-- cauldron is were moreutils is, disabled as couldn't get working
# - 'mageia:cauldron' # https://hub.docker.com/_/mageia <-- cauldron is where moreutils is, disabled as couldn't get working
# - 'nixos/nix' # https://hub.docker.com/r/nixos/nix <-- doesn't make bash available to env, also locale failure
# - 'gentoo/stage3' # https://hub.docker.com/r/gentoo/stage3 <-- couldn't get to work due to home misconfigure error
# - 'rockylinux:latest' # https://hub.docker.com/_/rockylinux <-- despite being listed, github fails to pull it
container:
image: ${{ matrix.container }}
steps:
Expand Down Expand Up @@ -251,8 +304,7 @@ jobs:
urpmi --auto bash curl
elif command -v dnf; then
# for fedora
# dnf check-update --assumeyes
# dnf upgrade --assumeyes --refresh --best --allowerasing
dnf makecache --refresh # dnf check-update --assumeyes
dnf install --assumeyes --refresh --best --allowerasing bash curl
elif command -v xbps-install; then
# for void linux
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ basic.vim
# custom to dorothy
user
state
fixtures/
6 changes: 5 additions & 1 deletion .trunk/configs/.shellcheckrc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# https://github.com/trunk-io/configs
enable=all
source-path=SCRIPTDIR
disable=SC2154,SC2164,SC2250,SC2310,SC2249,SC2312,SC1090,SC1091,SC2317,SC2016,SC2059
# disabling external sources is necessary otherwise shellcheck will take forever due to the size of bash.bash
external-sources=false
disable=SC2154,SC2164,SC2250,SC2310,SC2249,SC2312,SC1090,SC1091,SC2317,SC2016,SC2059,SC1083,SC2329
# https://www.shellcheck.net/wiki/SC2154 var is referenced but not assigned.
# https://www.shellcheck.net/wiki/SC2164 Use cd ... || exit in case cd fails.
# https://www.shellcheck.net/wiki/SC2250 Prefer putting braces around variable references even when not strictly required.
Expand All @@ -13,3 +15,5 @@ disable=SC2154,SC2164,SC2250,SC2310,SC2249,SC2312,SC1090,SC1091,SC2317,SC2016,SC
# https://www.shellcheck.net/wiki/SC2317 Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
# https://www.shellcheck.net/wiki/SC2016 Expressions don't expand in single quotes, use double quotes for that.
# https://www.shellcheck.net/wiki/SC2059 Don't use variables in the printf format string. Use printf "..%s.." "$foo".
# https://www.shellcheck.net/wiki/SC1083 We use {...} in the same way exec does, for variable assignment
# https://www.shellcheck.net/wiki/SC2329 We use eval, try, do, which shellcheck cannot figure out
77 changes: 52 additions & 25 deletions .trunk/trunk.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
# https://features.trunk.io/check/p/trunk-doesnt-work-in-nested-repo
version: 0.1
cli:
version: 1.22.9
version: 1.25.0
plugins:
sources:
- id: trunk
ref: v1.6.6
ref: v1.7.3
uri: https://github.com/trunk-io/plugins
runtimes:
enabled:
- node@18.20.5
- node@22.16.0
- [email protected]
- [email protected]
# - [email protected] <-- there's only a single Node.js file: echo-url-coder.js
# The below disablement isn't yet supported: 'disabled' is not a recognized key
# disabled:
# - node # There's only a single Node.js command: echo-url-coder.js
actions:
disabled:
- trunk-announce
Expand All @@ -21,27 +22,28 @@ actions:
- trunk-upgrade-available
lint:
enabled:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- git-diff-check@SYSTEM
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected] # Validates GitHub Actions workflow syntax/logic
- [email protected] # Security linter for Python (finds common vulnerabilities)
- [email protected] # Opinionated Python code formatter
- [email protected] # Spell checker for code, comments, and docs
- [email protected] # Python style/lint checks (PEP8, bugs, complexity)
- git-diff-check@SYSTEM # Lightweight checks on changed diffs (e.g., conflict markers/forbidden patterns)
- [email protected] # Sorts & groups Python imports
- [email protected] # Lints Markdown style and formatting
- [email protected] # Formatter for JS/TS/JSON/CSS/Markdown/etc.
- [email protected] # Fast Python linter (rules from Flake8/pylint), optional formatter
- [email protected] # Static analysis for shell scripts (bash/sh)
- [email protected] # Shell script formatter
- [email protected] # TOML linter/formatter (e.g., pyproject.toml)
- [email protected] # YAML syntax and style checker
disabled:
- eslint # it can't find the bevry config extensions for some reason
- trivy
- oxipng # broken for some reason on my mac mini
- eslint # It can't find the bevry config extensions for some reason
- oxipng # Broken for some reason on my mac mini
# We don't have any secrets in Dorothy, nor would secrets be applicable to Dorothy, so disable secret scanners as they will just slow linting down for no benefit.
- trivy # Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more
- checkov # IaC security scanner (Terraform, CloudFormation, K8s, etc.)
- gitleaks # Secret scanner for commits and repos
- trufflehog # High-signal secret detector (entropy + pattern matches)
ignore:
- linters: [ALL]
paths:
Expand All @@ -50,6 +52,31 @@ lint:
- node_modules/**
- commands.beta/pdf-extract
- commands.beta/python-regex
- fixtures/*
- linters: [trufflehog]
paths:
- commands/setup-util-warp
- linters: [checkov]
paths:
- config/installers.json
- linters: [shfmt]
paths:
- commands/setup-environment-commands
- commands/setup-git
- commands/setup-go
- commands/setup-hosts
- commands/setup-linux
- commands/setup-linux-raspi
- commands/setup-linux-recovery
- commands/setup-linux-safegraphics
- commands/setup-mac
- commands/setup-mac-appstore
- commands/setup-mac-brew
- commands/setup-node
- commands/setup-python
- commands/setup-ruby
- commands/setup-rust
- commands/setup-shell
- commands/setup-system
- commands/setup-util
- commands/setup-util-*
4 changes: 4 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
"trunk.io"
],

// List of extensions not needed but you will probably find useful:
// MS-vsliveshare.vsliveshare
// ms-vscode-remote.vscode-remote-extensionpack

// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
"timonwong.shellcheck",
Expand Down
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
},
"[plaintext][markdown][mdx]": {
"editor.folding": false,
"editor.lineNumbers": "off",
"editor.lineNumbers": "on",
"editor.minimap.enabled": false,
"editor.renderControlCharacters": true,
"editor.renderWhitespace": "boundary"
Expand Down
8 changes: 7 additions & 1 deletion .vscode/workspace.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,14 @@
}
],
"settings": {
// we use trunk, so disable these
"prettier.enable": false,
"cSpell.enabled": true,
"cSpell.enabled": false,
// ensure our fixtures are text and not something special that gets formatted
"files.associations": {
"*.txt": "plaintext"
},
// if your deno server is failing, your deno version is likely outdated, run `setup-util-deno --upgrade`
"deno.enable": true
}
}
Loading
Loading