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
316 commits
Select commit Hold shift + click to select a range
b522433
ci: better debugging of leftovers
balupton May 22, 2025
9b2906c
unziptar: fix non-glob file extraction
balupton May 23, 2025
ff9be4a
bash.bash: add __debug_vars
balupton May 23, 2025
4f25560
down: fix for alpine/busybox
balupton May 23, 2025
915f97e
command-working: debug alpine deno failures
balupton May 23, 2025
5823b98
disable alpine and riscv as no deno
balupton May 23, 2025
28f4780
- is-same: add tests
balupton May 24, 2025
a9b87b6
`fs-path` deprecates `fs-absolute`, `fs-realpath`
balupton May 26, 2025
03d79fb
ensure context is provided to semaphores, semlocks
balupton May 27, 2025
2a8f9c8
symlink-helper: fix regression
balupton May 27, 2025
ad77844
symlink-helper: fixes, is-fs*: streamline errors
balupton May 28, 2025
10d3b81
__do, eval-helper, fs-own, symlink-helper: bugfix
balupton May 28, 2025
affc42e
echo-math, fs-size: support more tools
balupton May 28, 2025
a322e74
major bugfix to semaphores, fix various tests
balupton May 30, 2025
64f6bbd
process/command substitutions discard exit status
balupton Jun 1, 2025
6489f08
expected should be the after in diffs
balupton Jun 4, 2025
6da7052
- finish implementing `__slice`
balupton Jun 4, 2025
c721789
echo-eval: support `$@` and `$1` arguments
balupton Jun 5, 2025
c4b621f
confirm: fix tests, support `--no-color`
balupton Jun 5, 2025
02bdde4
choose: fix tests
balupton Jun 5, 2025
d779478
ask: fix tests
balupton Jun 5, 2025
07c8390
`bash.bash:__get_substring`, `echo-substr`: rework
balupton Jun 6, 2025
5ec1e28
fs-type: attempt fix tests on CI
balupton Jun 6, 2025
db3cefc
- `is-exist`: fix tests
balupton Jun 6, 2025
3e5e0d0
read-key: fix tests
balupton Jun 7, 2025
87925ea
get-arch: simplify thanks to bash builtins
balupton Jun 7, 2025
33637b6
fix differences between login and current user
balupton Jun 9, 2025
aa225cb
is-owner, fs-own: fix tests
balupton Jun 9, 2025
e47ffe0
echo-math: attempt fix tests on debian systems
balupton Jun 9, 2025
b941c7f
echo-math: remove bc due to its silent failures on debian systems
balupton Jun 9, 2025
d21e95c
bash.bash: fix bad login and user functions
balupton Jun 9, 2025
40eef7c
bash.bash/dorothy-internals: debug user failures
balupton Jun 9, 2025
218a94d
bash.bash: fix user/group failures
balupton Jun 9, 2025
b386b52
WIP: `bash.bash` helpers use references, add `__evict`
balupton Jun 26, 2025
a7b65c2
`{alias,symlink}-helper` => `fs-{alias,link}`
balupton Jun 26, 2025
cbf12c4
`bash.bash:__to` remove ambigious join operations
balupton Jun 26, 2025
83f5483
bash.bash: fix bash v3 inconsistencies
balupton Jun 26, 2025
dad3cc0
echo-lines: fix `terminal_size: unbound variable`
balupton Jun 26, 2025
8b5cc0c
echo-math: do not show and do not compare TTY
balupton Jun 26, 2025
07ff8af
echo-math: add verbose failure messages
balupton Jun 26, 2025
2b071d3
echo-math: use new `echo-quote --always=no` for more readable failures
balupton Jun 26, 2025
195cd34
fix bad and inconsistent `--elevate` option handling
balupton Jun 26, 2025
a038f32
bash.bash: fix bad `__get_epoch_time` refactor
balupton Jun 26, 2025
d85233f
echo-math: fix bash v3 compat with `__split`
balupton Jun 26, 2025
f504f74
fix various `__split` string/array type conflicts
balupton Jun 27, 2025
e9db892
`bash.bash:__is_var_set` now true on array indexes
balupton Jun 27, 2025
2f1ce8b
is-{even,odd}: adjust edge case tests for changed behaviour
balupton Jun 27, 2025
12cf6d6
is-shapeshifter: fix tests
balupton Jun 27, 2025
1ebf54b
`eval-tester`: fix bad `fs-diff` call
balupton Jun 27, 2025
7e929df
echo-trim-special: progress towards fixed test
balupton Jun 27, 2025
6af1ce4
read-key: rewrite for upcoming extensibility
balupton Jun 30, 2025
a6d8712
echo-trim-special: fix tests
balupton Jul 3, 2025
5025737
workaround `$'\001'` bugs in older bash versions
balupton Jul 4, 2025
5cd3255
complete workaround of bash `$'\001'` bugs
balupton Jul 5, 2025
e79bff4
`get-flag-value` to `bash.bash:__flag`
balupton Jul 5, 2025
5ea2ebf
various test fixes
balupton Jul 5, 2025
91c4b3a
linting and leftovers from e79bff4005fa2e8f438826240f9f3e429cd7728a
balupton Jul 6, 2025
70627e5
fs-own: fix performance degradation from `is-*` fs helpers
balupton Jul 6, 2025
ba58b6b
ci: runner for each bash version
balupton Jul 6, 2025
4dfb692
change debug handling to avoid conflicts with go
balupton Jul 7, 2025
136fd38
fs-rm: fix trash crash on windows
balupton Jul 7, 2025
d459a6b
dorothy: fix pass/failure on only env bash tests
balupton Jul 7, 2025
0e41b12
setup-util: fix bad `__split` adoption
balupton Jul 7, 2025
65d7ea9
setup-util-deno: disable cargo on WSL
balupton Jul 7, 2025
ad91c05
add `is-windows`
balupton Jul 7, 2025
4d3c5c3
debug-bash, setup-util-bash: coerce versions into supported versions
balupton Jul 7, 2025
d53b9c3
WIP: dorothy-internals
balupton Jul 9, 2025
2e87afc
bash.bash: debug `BASH_XTRACEFD` failure on CI
balupton Jul 11, 2025
0b8889e
do: trailing-newlines now opt-in to mimic bash
balupton Jul 12, 2025
3807d14
dorothy-internals: robust failure checks
balupton Jul 12, 2025
3ab4cf0
eval-tester: attempt at fixing window ci failures
balupton Jul 13, 2025
bedb76f
reduce bash 4.2 and 4.3 to unsupported
balupton Jul 13, 2025
d699c2b
dorothy, debug-bash: fix `dorothy-internals` always being run with en…
balupton Jul 13, 2025
021886c
adjustments for better bash 4.1 support
balupton Jul 13, 2025
e2859b4
bash.bash: and ghostty ansi sequences and docs
balupton Jul 13, 2025
765970c
ci: disable the windows tests as LF becomes CRLF
balupton Jul 14, 2025
6ac6495
ci: disable unsupported bash versions
balupton Jul 14, 2025
eb23133
setup-util-wget: add other package managers
balupton Jul 14, 2025
ff879dc
down, setup-util-wget: fedora uses wget2
balupton Jul 15, 2025
d3049ae
`bash.bash:__{flag,dereference}`: consistency
balupton Jul 15, 2025
1c4b164
down: wget/wget1/wget2 detection
balupton Jul 15, 2025
e7eeb70
get-app: improve performance of scoop lookups
balupton Jul 15, 2025
0628f48
bash.bash: fix/test login/current users
balupton Jul 15, 2025
bd11cf1
`bash.bash:__{has,index}`: tests, fixes
balupton Jul 16, 2025
96e1560
bash.bash: re-arrange some internal functions
balupton Jul 16, 2025
322f1c3
`bash.bash:__{index,slice,evict}`: fixes
balupton Jul 17, 2025
f891f97
`bash.bash:__{has,index}`: new super function
balupton Jul 18, 2025
be52f08
bash.bash: new `__iterate` super function
balupton Jul 19, 2025
c361191
bash.bash: finish `__iterate` super function
balupton Jul 21, 2025
4dba27e
`__evict` to `__replace`
balupton Jul 24, 2025
9d182ea
bash.bash: debug `__iterate` empty source error
balupton Jul 24, 2025
a092706
bash.bash: `__{has,evict}` won't crash if source is empty
balupton Jul 24, 2025
8aae882
setup-environment-commands: fixes
balupton Jul 24, 2025
416ea49
bash.bash: efficient __unique
balupton Jul 24, 2025
a95baa0
*: fix some `__flag` convention leftovers from d3049aeb41fb3a02a901e9…
balupton Jul 24, 2025
c5b7c9b
dorothy-internals: use new `fixtures` directory
balupton Jul 25, 2025
f4f11e2
ci: linting
balupton Jul 25, 2025
102e832
dorothy-internals: continue improving tests
balupton Jul 26, 2025
cfd2c33
dorothy-internals: continue test improvement
balupton Jul 27, 2025
f525430
dorothy-internals: add extra array tests
balupton Jul 27, 2025
534362e
*: fix bad `__{slice,replace,join}` calls
balupton Jul 28, 2025
a18e7a1
fix homebrew deprecations
balupton Jul 28, 2025
cc9692d
fs-path: fix bad `__{replace,evict}` adoption
balupton Jul 28, 2025
fa50ccb
convention adoption and linting
balupton Jul 28, 2025
b773fe1
ask: fix bad `__flag` refactor
balupton Jul 28, 2025
d87d047
fs-type: fix tests on suse
balupton Jul 28, 2025
a0c4a7c
debug-terminal: robustify for ci failures
balupton Jul 28, 2025
f4629ea
debug-terminal: more robust for ci failures
balupton Jul 28, 2025
66f7170
debug-terminal: workaround for ci failures
balupton Jul 29, 2025
bfccb67
get-app: fix `Finder` not being detected, add `--id` for getting appl…
balupton Jul 31, 2025
08540c1
echo-substr: restore functionality to ensure it remains compatible wi…
balupton Aug 13, 2025
ca56ada
minor commenting/docs/help updates
balupton Aug 1, 2025
fabb48a
bash.bash:__reverse: fix string input
balupton Aug 13, 2025
fb6ead4
bash.bash: note as comment potential deprecation of `__slice`'s `--ke…
balupton Aug 13, 2025
3922c92
bash.bash: implement `__case` for `__iterate`
balupton Aug 19, 2025
aec42c3
fixes to bash.bash helpers, tests, conventions
balupton Aug 26, 2025
a71ceb7
dorothy-internals: fix tests on CI
balupton Aug 26, 2025
b906652
dorothy-internals: disable `__iterate` tests on CI
balupton Aug 28, 2025
070c3e3
eval-tester, bash.bash: fix time delta macos <15
balupton Aug 28, 2025
9a0f23c
dorothy-internals: test __iterate on ci if new bash, as that is faster
balupton Aug 28, 2025
61ca0f1
eval-helper, dorothy: wrap with time deltas for tests
balupton Sep 5, 2025
5f0da75
fs-path: fix edge cases, update tests
balupton Aug 30, 2025
b0217e9
fix `checksum` tests, add `echo-json`
balupton Sep 3, 2025
7fccf9b
edit: fix arg/path handling regression from WIP
balupton Sep 5, 2025
c7f736b
is-same: fix tests
balupton Sep 5, 2025
6bcb9e2
stdinargs, dorothy-internals: fix performance
balupton Sep 5, 2025
40c49ba
remove custom styles config for performance
balupton Sep 5, 2025
5ad815d
inline `echo-style` as `__print_style`
balupton Sep 6, 2025
afb96e1
echo-json: remove perl implementation
balupton Sep 6, 2025
aa0daf1
fs-path: fix named pipes on linux
balupton Sep 8, 2025
071e384
bash.bash: __flag: support custom yes/no
balupton Sep 8, 2025
acf84a2
echo-json and co: fix missing dependencies
balupton Sep 8, 2025
c35093d
bash.bash: consistent affirmative checks
balupton Sep 8, 2025
cab7d5a
add `setup-util-find`
balupton Sep 8, 2025
26d3cc7
dorothy/ci: debug `/etc/os-release`
balupton Sep 8, 2025
3f80554
bash.bash: the unset was unnecessary
balupton Sep 8, 2025
fe73a44
fs-type: fix tests on `opensuse/leap`
balupton Sep 8, 2025
eca3485
checksum: fix on opensuse
balupton Sep 8, 2025
b6dd665
echo-json: tests: ignore tty on first call
balupton Sep 8, 2025
283746c
echo-math: drop perl implementation
balupton Sep 8, 2025
0fafde6
comamnd-working: fix find/xargs
balupton Sep 8, 2025
76c40ae
is-bash-version-outdated: fix output, fix tests
balupton Sep 8, 2025
588dcb2
`__tool`, `__require_command`, `__print_style`
balupton Sep 9, 2025
a741d48
fs-size: fix and improve tool handling
balupton Sep 9, 2025
b58c777
fs-size: cross-os du updates
balupton Sep 9, 2025
1be4f33
fs-size: tests: reflect du bytes fails on macos
balupton Sep 10, 2025
9bfe432
ci: trunk: add comments that describe linters (#302)
samgutentag Sep 13, 2025
f054a33
ci: linting
balupton Sep 16, 2025
e259ea2
echo-revolving-door: fix regression
balupton Sep 16, 2025
b300b31
ci: upgrade and fix linting, and backers
balupton Sep 16, 2025
5dd6020
brew, eval-helper, setup-mac-brew: fixes
balupton Sep 17, 2025
f19858a
ci: add `macos-26`, disable u`buntu-24.04-arm`
balupton Sep 17, 2025
249368a
get-arch: `--dump`, dorothy: source `styles.bash`
balupton Sep 17, 2025
5fa946c
bash.bash: extract ANSI to `sources/ansi.bash`
balupton Sep 18, 2025
c89e626
get-macos-release-name: add 26/tahoe
balupton Sep 18, 2025
5e86504
cpr: better help styling
balupton Sep 18, 2025
3d3b734
setup-util-xcode: fix a deprecated call
balupton Sep 18, 2025
6613739
echo-revolving-door: move __split_shapeshifting to ansi.bash
balupton Sep 18, 2025
53ba484
echo-revolving-door: update docs
balupton Sep 18, 2025
0a82ced
down: fix test expectations
balupton Sep 18, 2025
a3a8a8a
bash.bash: require bash 5.1+ on suse
balupton Sep 18, 2025
429ec36
echo-math, bash.bash: support bash 5.3 fltexpr
balupton Sep 19, 2025
da80b37
debug-terminal: CI arm workaround
balupton Sep 19, 2025
3fb21f7
setup-util-bash: support patches, use mirrors
balupton Sep 19, 2025
69a57b5
ci: lint
balupton Sep 22, 2025
782c033
dorothy: fix help formatting
balupton Sep 22, 2025
22eb5a9
`__print_style` support vars, `git-helper` rewrote
balupton Sep 24, 2025
7c0f163
oz: Ghostty 1.2.0 broke colored terminal prompts
balupton Sep 26, 2025
71fff68
bash.bash, nu.nu: add terminal title progress bars
balupton Sep 26, 2025
6f6c5c0
eval-helper: correct help, pause complex tests
balupton Sep 27, 2025
fc98567
get-codec: rewrote for comprehensive retrieval
balupton Oct 1, 2025
fe1ac73
ytd-helper: rewrote to avoid conflicts with arguments
balupton Oct 1, 2025
9a5f044
bash.bash: fix `__replace` on arrays
balupton Oct 1, 2025
d15c600
bash.bash: `__terminal_title_progress_bar` fixes
balupton Oct 1, 2025
ada183f
rewrite `echo-file`, `is-same`, add `__print_help`
balupton Oct 1, 2025
f2ad7b1
autocomplete: remove old gh copilot, remove tea
balupton Oct 3, 2025
dcaa28c
bash.bash: `__is_affirmative` now used for `__is_non_affirmative`
balupton Oct 3, 2025
3e97945
echo-file: fix `--help`
balupton Oct 3, 2025
2eeef56
echo-file, __command_required, is-fs: fixes
balupton Oct 4, 2025
8378994
setup-util-bat: update sources
balupton Oct 4, 2025
e84f901
bash.bash: `__command_required` remove cache
balupton Oct 4, 2025
dab45e7
echo-file: tests: handle bat installs when secondary dep install meth…
balupton Oct 4, 2025
4fdbb1b
stdinargs: `__stdinargs__help_options`
balupton Oct 4, 2025
db8e15c
echo-unique, setup-util-bash: fix patch dupes
balupton Oct 4, 2025
5ce73f0
echo-file: support process subtitutions
balupton Oct 4, 2025
7561d52
echo-file: add combined test, inc files
balupton Oct 4, 2025
239912c
debug-terminal, get-codec: use `echo-json`
balupton Oct 7, 2025
aede6ab
bash.bash: remove `__print_without_styles`
balupton Oct 8, 2025
f9311ed
get-codec: fix tests, install `mediainfo`
balupton Oct 8, 2025
14467f3
setup-util-bat: disable outdated zypper
balupton Oct 8, 2025
776ed0e
ci: update deps
balupton Oct 8, 2025
6f510fb
choose, confirm, echo-clear-lines: source commands
balupton Oct 9, 2025
f140f38
confirm: use `__to` for bell outputs
balupton Oct 9, 2025
89b7cf4
bash.bash: fix `setup-environment-commands --debug`
balupton Oct 9, 2025
ea9d082
setup-environment-commands: fix cache expired message
balupton Oct 9, 2025
2a45cc8
oz: re-enable coloured prompts for Ghostty
balupton Oct 9, 2025
4464d41
setup-util-nerd-fonts: fixed it
balupton Oct 9, 2025
6da6664
confirm: new styles, styles.bash: rework
balupton Oct 9, 2025
77d2871
bash.bash: add `__get_date` helper
balupton Oct 12, 2025
620ce03
setup-environment-commands: cache to 30 mins
balupton Oct 12, 2025
6c9c3ae
ci: linting
balupton Oct 12, 2025
b8d7521
confirm: fix prompt, result, and no-color styles
balupton Oct 12, 2025
e374120
ansi.bash: inline `__read_key`, confirm: fix clearing
balupton Oct 12, 2025
fa72067
echo-clear-lines: undo 6f510fb642059ef2c4c0b1f27efb265053e1d59f
balupton Oct 12, 2025
e5ace2a
echo-wrap, ansi.bash: fix bad `__should_wrap`
balupton Oct 12, 2025
c8b858c
echo-wrap: fix `--width=0`
balupton Oct 12, 2025
918a515
styles.bash:__print_help: remove WIP/debug comments
balupton Oct 12, 2025
d5261d3
lint: use `__is_function_defined`
balupton Oct 15, 2025
cb8928e
bash.bash: fix `__get_date`, add `__get_epoch_seconds`
balupton Oct 15, 2025
d20be81
cpr: remove problematic complexity, and drop gcp
balupton Oct 15, 2025
ac69bd1
ci: note deno version upgrade
balupton Oct 15, 2025
8afee6f
ci: add openmandriva
balupton Oct 15, 2025
d93571e
get-codec: fix tests on CI
balupton Oct 15, 2025
62f4f75
get-codec: again try and fix tests on CI
balupton Oct 16, 2025
8393700
*: fixes, setup-python: support `uv`
balupton Oct 16, 2025
7cd6fb6
setup-util-wget: attempt fix fedora issues
balupton Oct 16, 2025
e62652a
ci: attempt add vanilla os
balupton Oct 16, 2025
222d1d1
ci: lint
balupton Oct 16, 2025
26f8e0f
ci: drop vanillaos core-image, keep pico
balupton Oct 16, 2025
92e19a5
down: better debug fedora wget failures
balupton Oct 16, 2025
21885d4
down: fix fedora wget handling, fix wrap
balupton Oct 16, 2025
870926d
down: fedora wget still trying to wget2
balupton Oct 16, 2025
66143aa
down: fix fedora installing wget2
balupton Oct 16, 2025
b7640a5
down: fix fedora not detecting wget1
balupton Oct 16, 2025
9ef73f7
*: use `TMPDIR` instead of `XDG_CACHE_HOME`
balupton Oct 18, 2025
890ec47
*: use `printf -v <var>` where appropriate
balupton Oct 21, 2025
e894cdd
ci: linting
balupton Oct 21, 2025
ed831b8
versions.md: more precise and thorough
balupton Oct 21, 2025
f60ebc7
ci: linting
balupton Oct 21, 2025
7d1698f
setup-util-monaco: drop cask
balupton Oct 21, 2025
5f1bcc0
setup-util-monoid: fix Monoid name
balupton Oct 21, 2025
18c6da3
video-merge: m4b support, video -> media
balupton Oct 21, 2025
d19369f
debug-bash: `eval-helper` dropped `--command`
balupton Oct 21, 2025
e0fb6cd
dorothy: update help, styling, and arg parsing
balupton Oct 21, 2025
d3a11a2
eval-tester, eval-helper: use new `echo-duration`
balupton Oct 21, 2025
04eb7c1
echo-duration: maintain milliseconds in output
balupton Oct 21, 2025
3e9b417
cpr:fs-copy, fs-mv:fs-move, fs-rm:fs-remove
balupton Oct 22, 2025
6ba1f38
fs-move: clearer help docs
balupton Oct 22, 2025
b2ba9d9
ci: add devuan
balupton Oct 22, 2025
5aa382a
ci: lint
balupton Oct 22, 2025
04b42f1
*: `--elevate` should be `--no-coerce`
balupton Oct 22, 2025
9eb4bb7
fs-{copy,link,move,remove}: improvements
balupton Oct 22, 2025
ac9e09f
ci: linting
balupton Oct 22, 2025
72df1a0
ci: linting
balupton Oct 22, 2025
7973f34
dorothy: fix dorothy and user detection/creation
balupton Oct 22, 2025
c00c6e0
ci: add almalinux
balupton Oct 22, 2025
2149326
fs-type, setup-util-mediainfo: fix alma tests
balupton Oct 22, 2025
aff84c2
setup-util-nu: prefer musl, add solus, suse, alma
balupton Oct 22, 2025
d0134a8
ci: fix disable of shellcheck SC2329
balupton Oct 22, 2025
a2dc226
setup-shell: attempt fix chsh ci error
balupton Oct 22, 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
  •  
  •  
  •  
85 changes: 68 additions & 17 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,7 +218,33 @@ 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
Expand All @@ -210,10 +255,16 @@ jobs:
- '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
- '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
# - 'ghcr.io/vanilla-os/core:latest' # https://github.com/Vanilla-OS/core-image/pkgs/container/core/544319268?tag=latest <-- too heavy for github actions, `failed to register layer: max depth exceeded`
# - 'alpine:latest' # https://hub.docker.com/_/alpine <-- deno currently broken: https://github.com/denoland/deno_install/issues/311 https://github.com/denoland/deno/issues/3711
# - '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
# - '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
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/*.actual.*
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