135 lines
5.1 KiB
Markdown
135 lines
5.1 KiB
Markdown
# antidote bundle helper tests
|
|
|
|
## Setup
|
|
|
|
```zsh
|
|
% TESTDATA=$PWD/tests/testdata
|
|
% source ./tests/_setup.zsh
|
|
% source ./antidote.zsh
|
|
% antidote-bundle -h &>/dev/null
|
|
%
|
|
```
|
|
|
|
## Awk filter repos
|
|
|
|
The repo parser pulls a list of all git URLs in a bundle file so that we can clone missing ones in parallel.
|
|
|
|
```zsh
|
|
% __antidote_bulk_clone $TESTDATA/.zsh_plugins_repos.txt
|
|
antidote-script --kind clone --branch baz foobar/foobar &
|
|
antidote-script --kind clone bar/baz &
|
|
antidote-script --kind clone getantidote/zsh-defer &
|
|
antidote-script --kind clone git@github.com:user/repo &
|
|
antidote-script --kind clone http://github.com/user/repo.git &
|
|
antidote-script --kind clone https://github.com/foo/baz &
|
|
antidote-script --kind clone https://github.com/foo/qux &
|
|
antidote-script --kind clone https://github.com/user/repo &
|
|
antidote-script --kind clone user/repo &
|
|
wait
|
|
%
|
|
```
|
|
|
|
Test empty
|
|
|
|
```zsh
|
|
% __antidote_bulk_clone $TESTDATA/.zsh_plugins_empty.txt
|
|
wait
|
|
%
|
|
```
|
|
|
|
## Awk Filter defers
|
|
|
|
Test that only the first defer block is kept...
|
|
|
|
```zsh
|
|
% __antidote_filter_defers $PWD/tests/testdata/.zsh_plugins_multi_defer.zsh | subenv ANTIDOTE_HOME
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-history-substring-search )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-history-substring-search/zsh-history-substring-search.plugin.zsh
|
|
if ! (( $+functions[zsh-defer] )); then
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-getantidote-SLASH-zsh-defer )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-getantidote-SLASH-zsh-defer/zsh-defer.plugin.zsh
|
|
fi
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-syntax-highlighting )
|
|
zsh-defer source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh
|
|
if is-macos; then
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-ohmy-SLASH-ohmy/plugins/macos )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-ohmy-SLASH-ohmy/plugins/macos/macos.plugin.zsh
|
|
fi
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-autosuggestions )
|
|
zsh-defer source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zsh-users-SLASH-zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zdharma-continuum-SLASH-fast-syntax-highlighting )
|
|
zsh-defer source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-zdharma-continuum-SLASH-fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-dracula-SLASH-zsh )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-dracula-SLASH-zsh/dracula.zsh-theme
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-peterhurford-SLASH-up.zsh )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-peterhurford-SLASH-up.zsh/up.plugin.zsh
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-rummik-SLASH-zsh-tailf )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-rummik-SLASH-zsh-tailf/tailf.plugin.zsh
|
|
fpath+=( $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-rupa-SLASH-z )
|
|
source $ANTIDOTE_HOME/https-COLON--SLASH--SLASH-github.com-SLASH-rupa-SLASH-z/z.sh
|
|
%
|
|
```
|
|
|
|
Test that with no defers, nothing is altered...
|
|
|
|
```zsh
|
|
% __antidote_filter_defers $PWD/tests/testdata/.zsh_plugins_no_defer.zsh #=> --file testdata/.zsh_plugins_no_defer.zsh
|
|
%
|
|
```
|
|
|
|
## Awk Bundle parser
|
|
|
|
Parse a simple repo:
|
|
|
|
```zsh
|
|
% echo foo/bar | __antidote_parse_bundles
|
|
antidote-script foo/bar
|
|
%
|
|
```
|
|
|
|
```zsh
|
|
% echo 'https://github.com/foo/bar path:lib branch:dev' | __antidote_parse_bundles
|
|
antidote-script --path lib --branch dev https://github.com/foo/bar
|
|
% echo 'git@github.com:foo/bar.git kind:clone branch:main' | __antidote_parse_bundles
|
|
antidote-script --kind clone --branch main git@github.com:foo/bar.git
|
|
% echo 'foo/bar kind:fpath abc:xyz' | __antidote_parse_bundles
|
|
antidote-script --kind fpath --abc xyz foo/bar
|
|
% echo 'foo/bar path:plugins/myplugin kind:path # trailing comment' | __antidote_parse_bundles
|
|
antidote-script --path plugins/myplugin --kind path foo/bar
|
|
%
|
|
```
|
|
|
|
Handle funky whitespace
|
|
|
|
```zsh
|
|
% cr=$'\r'; lf=$'\n'; tab=$'\t'
|
|
% echo "foo/bar${tab}kind:path${cr}${lf}" | __antidote_parse_bundles
|
|
antidote-script --kind path foo/bar
|
|
%
|
|
```
|
|
|
|
The bundle parser is an awk script that turns the bundle DSL into antidote-script statements.
|
|
|
|
```zsh
|
|
% __antidote_parse_bundles $ZDOTDIR/.zsh_plugins.txt
|
|
antidote-script ~/foo/bar
|
|
antidote-script --path plugins/myplugin \$ZSH_CUSTOM
|
|
antidote-script foo/bar
|
|
antidote-script git@github.com:foo/qux.git
|
|
antidote-script --kind clone getantidote/zsh-defer
|
|
antidote-script --kind zsh foo/bar
|
|
antidote-script --kind fpath foo/bar
|
|
antidote-script --kind path foo/bar
|
|
antidote-script --path lib ohmy/ohmy
|
|
antidote-script --path plugins/extract ohmy/ohmy
|
|
antidote-script --path plugins/magic-enter --kind defer ohmy/ohmy
|
|
antidote-script --path custom/themes/pretty.zsh-theme ohmy/ohmy
|
|
%
|
|
```
|
|
|
|
## Teardown
|
|
|
|
```zsh
|
|
% t_teardown
|
|
%
|
|
```
|