-
-
Notifications
You must be signed in to change notification settings - Fork 32
fix install, improve everything #281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Feb 9, 2025
f1ab3b7 to
3842e0f
Compare
b56a2bc to
2fce747
Compare
balupton
added a commit
that referenced
this pull request
Feb 21, 2025
This was referenced Mar 6, 2025
f23b717 to
77afaf1
Compare
5b95343 to
f6d41ca
Compare
it now lints
the drop of `jq` in `get-installer` fixes `get-installer` calling `__command_required` which calls `get-installer` to install `jq` which causes infinite recursion /ref https://github.com/bevry/dorothy/actions/runs/19094345762/job/54550976744 turns out the `jq` dep was entirely unnecessary, as in the end jq was just converting it to a DSV anyway this also adds sorting to `dorothy lint` of `installers.dat` and `cspell.json` also does some linting fixes
use `command -v` on zsh, fix title separator handling, linting
This was referenced Nov 5, 2025
Closed
This was referenced Nov 6, 2025
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes:
dorothy installandsetup-system updateattempt to symlink$DOROTHYto itself on macOS 15.4 arm64 #294setup-environment-commandsfor faster initialisation #290setup-util-brew --uninstallhas several flows that requiresbrew#278eval_capturehas a race condition that can cause CI to fail #277setup-shellwhen no configuration should prompt which shell to use #271dorothy-warningssystem #258setup-utilsupport for streamlined{bin,man,lib,etc}extraction #223fs-dirnameshould support non-existing paths #153May close:
Improves:
get-installerintosetup-util, such that I can dosetup-util --cli='thing'and it'll work #282Discards old implementation of:
Changes:
macos-26testingbevry/dorothy-fixturesand cloned out to the git ignored$DOROTHY/fixturesondorothy test*:>&*instead of/dev/*as the latter causes issues on linux systems, as redirections from say> /dev/stderrto&2>> stderr.logwill cause overwrites on linux instead of appends__do,__to,__value_to_ttyfunctionsbash.bashhelpers__lowercase_stringis now__get_lowercase_string$USERis now$CURRENT_USERor$LOGIN_USERas appropriatecommand-(exists|missing)is now__command_(exists|missing), and there is a new__command_requiredfor dependency requirements, and__toolfor elective tool dependenciesdateanddate-helperis often now__get_datewhich is far more performantecho-erroris now__print_errorecho-joinis now__joineval_captureis now__try, however usually it is combined with logic that makes you want the new__doinsteadeval-no-colorcan often be either<cmd> --no-colororCOLOR=no <cmd>get-flag-valueis now__flagis-(non-)affirmativeis now__is_(non_)affirmative, however if you are using for parsing a flag, then use__flag --(non-)affirmativeis-ciis now[[ -n $CI ]]is-integeris now__is_integeris-needleis now__hasis-numberis now__is_numbermapfileis now in most cases better replaced by__splitsudo-helperis noweval-helper --elevate, which resolves prior complexity and conflicts between the twobash.bashhelpersstyles.bashhelpersecho-styleis now__print_stylecat ...<help>is now__print_helpis-*andfs-*helpers, which have permission awareness and automagically handle elevation by defaulttype -t <function>function checks can now be done by__affirm_function_is_defined <function>stdinargs.bash,echo-*:__on_whole,__on_piece,__on_stdin,__on_nothinghooks for performance and accuracyeval-tester:eval-helper,echo-revolving-door:<var>="$(printf ...)"toprintf -v <var> ...where appropriate for performance gainsecho-escape-special:echo-eval:echo-if-(directory|executable),ensure-trailing-newline:is-*andfs-*helpersedit:--sudois now--elevate, as per the newis-*andfs-*helpersfind-(directories|files|symlinks)|icloud-helper:finddependencyfont-search:get-codec,video-merge:is-empty-size:is-fedora:is-password-usable:is-shapeshifter:ansi.bash:__is_shapeshifterhas been dramatically improved, supporting more non-shapeshifting ANSI escape sequencesis-suffix:macos-theme:video-merge:ytd-helper:alias-helperis nowfs-aliascpris nowfs-copyecho-checksumis nowchecksumecho-clear-lineis noeecho-style --no-trail --delete-lineor__print_style --no-trail --delete-lineecho-mkdiris nowfs-mkdir --verboseecho-titleis nowecho-style --no-trail --tty --title=<title>or__print_style --no-trail --tty --title=<title>echo-waitis nowecho-write ...fs-(absolute|basename|dirname|extension|filename|parents|realpath)is nowfs-path ...fs-(bytes|kilobytes|megabytes)is nowfs-size ...fs-ln|symlink-helperis nowfs-linkfs-mvis nowfs-movefs-rmis nowfs-removeget-fileis nowfs-typeget-git-active-branchis nowget-helper current-branchget-git-default-branchis nowget-helper default-branchget-terminal-device-filecan now be$TERMINAL_OUTPUT_TARGETinbash.bashsudo-helperis noweval-helper --elevatesudo-helper --localis nowconfig-edit --localuntil-successis noweval-helper --until=successask,choose,confirm:echo-clear-linesfor a tiny bit better performanceask:echo-clear-linesfor a tiny bit better performancebrew:--helphandlingbrew-installed(.ts)?:checksum:choose:command-working:find,gsed,sed,ssh, andxargsto exceptionsconfig-edit:--[no-]local, which previously was inside the now deprecatedsudo-helperconfig-helper:confirm:date-helper:--(utc|8601|unix|adguard|ytd)--month-agofor trailing days of a longer month than priordebug-bash:--(ab|av|all|continue|wrap|code|debug|trace)and-(v|x|xv|vx)debug-terminal:dorothy:bash.bashrather than reimplementing imitation helperssetup-shell,git-helper, andfs-move --symlinkdebug-bashcapabilitiesfixturesrepo is cloneddorothy-config:dorothy-internals:bash.bashand co capabilitiesdorothy-warnings:down:eval-helperandecho-revolving-doorcapabilities for improved progress bar renderingwgetcompatibility divergencesecho-clear-lines,echo-revolving-door,echo-trim-special,eval-helper,ansi.bash:down, and enabling sliding windows for say extractions or utility installations that keep important headers visible while sliding a sub-window of ephemeral linesecho-duration:eval-testerandeval-helper --timeecho-escape-command:eval-helperwrapping nicerecho-file:echo-inject:echo-json:echo-math:echo-max:echo-quote:echo-substr:bash.bashhelpers work differentlyecho-transpose:echo-unique:sortanduniqimplementations, which now usesbash.bashhelpersecho-uppercase:echo-verbose:__print_stylevariable rendering andstdinargshooks, such that empty results and variables have consistent stylingecho-wrap:echo-*commands, uses the newstdinargsto fix edge casesecho-write:echo-wait, to completely replace things likespongeandifneand in some casesteeedit:setup-mac-brew:eval-helperandbrew-installed(.ts)?Follow-ups:
echo-filenamestocommands.deprecatedmay have been an accident, check the changelogecho-mkdirhas the wrong function name, from a bad copy pasteTodos:
Current batch todos, in any order:
setup-shellflowsetup-util-$shellflow remove uninstalled login shell, without endless recursion - I've added an exclude option, however need to finish implementing ituse_shellsempty by default, as otherwise everything is selected for login shellconfig-helperecho-waitecho-fileis-touchable--sudoflag to--elevatein all relevant locationseval-helperandsudo-helpershould be merged, or need a neweval-targetcommand, to avoid conflating stderr output in no-tty mode (achieved by new__dofunction)__doand__tryfunctionsecho-waitcleanupget-installerto use a json file, so it can run on bash v3 which will fixdorothy-configfailing on old bash versions.sudo --stdinflag when neededstyles.bashenv vars preset tosetup-environment-commandsget-terminal-themeon WSL