mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-09-26 13:06:10 +02:00
fix(cli): address review feedback on omz generate plugin
- Turn %placeholders% into private markers when a template is read and strip the marker from every value, so text inserted from user input (e.g. -d '%name%') is never rescanned as a placeholder. - When --enable is used for a name already in $plugins (a custom override of an enabled built-in), report it and reload instead of failing in _omz::plugin::enable. - Make the completion note accurate whether or not a _<cmd> file was generated. - Test the write-phase cleanup with a template set missing a later template, and test that placeholder-looking values come out literally. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
46aee25f27
commit
de76990950
@@ -75,6 +75,12 @@ else
|
||||
pass "foo has no unfilled placeholders"
|
||||
fi
|
||||
|
||||
## Values that look like placeholders are written literally
|
||||
|
||||
omz generate plugin lit -d '%compgen% and %name% stay' -c lit --yes >/dev/null 2>&1
|
||||
assert_contains "$ZSH_CUSTOM/plugins/lit/README.md" '%compgen% and %name% stay'
|
||||
assert_contains "$ZSH_CUSTOM/plugins/lit/lit.plugin.zsh" '%compgen% and %name% stay'
|
||||
|
||||
## A plugin with no command
|
||||
|
||||
if omz generate plugin bar --yes >/dev/null 2>&1; then
|
||||
@@ -151,6 +157,25 @@ else
|
||||
fi
|
||||
[[ -e "$ZSH_CUSTOM/plugins/quux" ]] && fail "quux was created by a failed run"
|
||||
|
||||
## A failure after the first file is written removes everything it created
|
||||
|
||||
broken="$(mktemp -d)"
|
||||
mkdir -p "$broken/templates/generators/plugin" "$broken/plugins"
|
||||
cp "$ZSH/templates/generators/plugin/plugin.zsh-template" \
|
||||
"$ZSH/templates/generators/plugin/completion-note.zsh-template" "$broken/templates/generators/plugin/"
|
||||
# README.md-template is missing, so the plugin file is written and then the README fails
|
||||
if ( ZSH="$broken"; omz generate plugin partial -c partial --yes >/dev/null 2>&1 ); then
|
||||
fail "succeeded with a missing README template"
|
||||
else
|
||||
pass "fails when a later template is missing"
|
||||
fi
|
||||
if [[ -e "$ZSH_CUSTOM/plugins/partial" ]]; then
|
||||
fail "partial plugin directory was left behind: $(ls "$ZSH_CUSTOM/plugins/partial")"
|
||||
else
|
||||
pass "cleans up the partial plugin directory"
|
||||
fi
|
||||
command rm -rf "$broken"
|
||||
|
||||
## The prompt helper
|
||||
|
||||
_omz::generate::plugin::ask "Q" "dflt" 2>/dev/null < <(print '')
|
||||
|
||||
Reference in New Issue
Block a user