mirror of
https://github.com/IlanCosman/tide.git
synced 2024-11-23 08:46:51 +03:00
Switch to scuba
This commit is contained in:
parent
9bfcbec6f3
commit
3858228776
9
.github/workflows/CI.yml
vendored
9
.github/workflows/CI.yml
vendored
@ -22,10 +22,11 @@ jobs:
|
|||||||
|
|
||||||
- uses: fish-actions/install-fish@v1
|
- uses: fish-actions/install-fish@v1
|
||||||
|
|
||||||
- name: Install Tide unattended
|
- name: Install Scuba
|
||||||
run: |
|
run: curl -sL git.io/scuba-install | source && _scuba_sub_install ilancosman/scuba
|
||||||
source $GITHUB_WORKSPACE/tools/tide_install.fish
|
|
||||||
tide_install --local --unattended $GITHUB_WORKSPACE
|
- name: Install Tide
|
||||||
|
run: scuba install $GITHUB_WORKSPACE
|
||||||
|
|
||||||
- name: Install testing dependencies
|
- name: Install testing dependencies
|
||||||
run: tide test --install
|
run: tide test --install
|
||||||
|
@ -30,7 +30,6 @@ Anything exposed to the shell or user--functions, global/universal variables, an
|
|||||||
- `set -U tide_right_prompt_items`
|
- `set -U tide_right_prompt_items`
|
||||||
- `_tide_count_left_prompt_height.fish`
|
- `_tide_count_left_prompt_height.fish`
|
||||||
- `_tide_right_prompt`
|
- `_tide_right_prompt`
|
||||||
- `tide_install`
|
|
||||||
|
|
||||||
#### Specific Naming Conventions
|
#### Specific Naming Conventions
|
||||||
|
|
||||||
@ -41,7 +40,7 @@ Anything exposed to the shell or user--functions, global/universal variables, an
|
|||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
- [fisher][] - plugin manager for fish
|
- [scuba][] - plugin manager for fish
|
||||||
- [spout][] - 100% pure-fish TAP-based test runner
|
- [spout][] - 100% pure-fish TAP-based test runner
|
||||||
- [clownfish][] - override the behavior of commands
|
- [clownfish][] - override the behavior of commands
|
||||||
|
|
||||||
@ -93,10 +92,10 @@ Todo on release:
|
|||||||
[`fish_indent`]: https://fishshell.com/docs/current/cmds/fish_indent.html
|
[`fish_indent`]: https://fishshell.com/docs/current/cmds/fish_indent.html
|
||||||
[clownfish]: https://github.com/IlanCosman/clownfish
|
[clownfish]: https://github.com/IlanCosman/clownfish
|
||||||
[code of conduct]: CODE_OF_CONDUCT.md
|
[code of conduct]: CODE_OF_CONDUCT.md
|
||||||
[fisher]: https://github.com/jorgebucaran/fisher
|
|
||||||
[markdownlint]: https://github.com/DavidAnson/markdownlint
|
[markdownlint]: https://github.com/DavidAnson/markdownlint
|
||||||
[prettier]: https://github.com/prettier/prettier
|
[prettier]: https://github.com/prettier/prettier
|
||||||
[reference style]: https://www.markdownguide.org/basic-syntax/#reference-style-links
|
[reference style]: https://www.markdownguide.org/basic-syntax/#reference-style-links
|
||||||
|
[scuba]: https://github.com/IlanCosman/scuba
|
||||||
[spout]: https://github.com/IlanCosman/spout
|
[spout]: https://github.com/IlanCosman/spout
|
||||||
[super-linter]: https://github.com/github/super-linter
|
[super-linter]: https://github.com/github/super-linter
|
||||||
[yamllint]: https://github.com/adrienverge/yamllint
|
[yamllint]: https://github.com/adrienverge/yamllint
|
||||||
|
@ -36,10 +36,10 @@
|
|||||||
- [Fish][] ≥ 3.1
|
- [Fish][] ≥ 3.1
|
||||||
- A [Nerd Font][nerd fonts] installed and enabled in your terminal (for example the [recommended font](#fonts)).
|
- A [Nerd Font][nerd fonts] installed and enabled in your terminal (for example the [recommended font](#fonts)).
|
||||||
|
|
||||||
#### Source and run the install function
|
#### Install with [Scuba][]
|
||||||
|
|
||||||
```console
|
```console
|
||||||
curl -sL git.io/tide | source && tide_install
|
scuba install IlanCosman/tide
|
||||||
```
|
```
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@ -159,5 +159,6 @@ Open each file and click "Install". This will make the `MesloLGS NF` font availa
|
|||||||
[nerd fonts]: https://github.com/ryanoasis/nerd-fonts
|
[nerd fonts]: https://github.com/ryanoasis/nerd-fonts
|
||||||
[powerlevel10k]: https://github.com/romkatv/powerlevel10k/
|
[powerlevel10k]: https://github.com/romkatv/powerlevel10k/
|
||||||
[pure]: https://github.com/rafaelrinaldi/pure
|
[pure]: https://github.com/rafaelrinaldi/pure
|
||||||
|
[scuba]: https://github.com/IlanCosman/scuba
|
||||||
[spacefish]: https://github.com/matchai/spacefish
|
[spacefish]: https://github.com/matchai/spacefish
|
||||||
[starship]: https://github.com/starship/starship
|
[starship]: https://github.com/starship/starship
|
||||||
|
@ -1,7 +1,53 @@
|
|||||||
_tide_count_left_prompt_height
|
if set -q _tide_version
|
||||||
|
_tide_count_left_prompt_height
|
||||||
|
|
||||||
_tide_detect_os
|
_tide_detect_os
|
||||||
|
|
||||||
_tide_git_prompt_set_vars
|
_tide_git_prompt_set_vars
|
||||||
|
|
||||||
_tide_pwd
|
_tide_pwd
|
||||||
|
end
|
||||||
|
|
||||||
|
function _tide_init_install --on-event _tide_init_install
|
||||||
|
_set_immutable _tide_color_dark_blue 0087AF
|
||||||
|
_set_immutable _tide_color_dark_green 5FAF00
|
||||||
|
_set_immutable _tide_color_gold D7AF00
|
||||||
|
_set_immutable _tide_color_green 5FD700
|
||||||
|
_set_immutable _tide_color_light_blue 00AFFF
|
||||||
|
_set_immutable _tide_color_normal (set_color normal)
|
||||||
|
|
||||||
|
_set_immutable _tide_dir "$__fish_config_dir/functions/tide"
|
||||||
|
_set_immutable _tide_version 2.4.0
|
||||||
|
|
||||||
|
_set_immutable NVM_DIR $HOME/.nvm
|
||||||
|
_set_immutable VIRTUAL_ENV_DISABLE_PROMPT true
|
||||||
|
|
||||||
|
set -U _tide_var_list
|
||||||
|
|
||||||
|
source "$_tide_dir/configure/choices/all/style.fish"
|
||||||
|
_load_config 'lean'
|
||||||
|
|
||||||
|
source "$_tide_dir/configure/choices/all/finish.fish"
|
||||||
|
_tide_finish
|
||||||
|
|
||||||
|
source "$__fish_config_dir/functions/fish_prompt.fish"
|
||||||
|
|
||||||
|
if status is-interactive
|
||||||
|
while true
|
||||||
|
switch (read --prompt-str="Configure tide prompt? [Y/n] ")
|
||||||
|
case y Y yes Yes ''
|
||||||
|
tide configure
|
||||||
|
case n N no No
|
||||||
|
printf '%s' \
|
||||||
|
\n 'Run ' (set_color $fish_color_command) 'tide ' \
|
||||||
|
(set_color $fish_color_param) 'configure ' (set_color normal) 'to customize your prompt.' \n
|
||||||
|
end
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _set_immutable -a var_name
|
||||||
|
set -U $var_name $argv[2..-1]
|
||||||
|
set -Ua _tide_var_immutable_list $var_name
|
||||||
|
end
|
@ -12,7 +12,7 @@ The following sections contain tables of variable names, their descriptions, and
|
|||||||
|
|
||||||
Variables in these sections will be denoted as `foo_bar` but will actually be `tide_<INSERT HEADER>_foo_bar`. Variables that do not conform to this standard will be written out in full.
|
Variables in these sections will be denoted as `foo_bar` but will actually be `tide_<INSERT HEADER>_foo_bar`. Variables that do not conform to this standard will be written out in full.
|
||||||
|
|
||||||
You can take a look at the default configurations in `~/.config/fish/tide_theme/configure/configs` for inspiration.
|
You can take a look at the default configurations in `~/.config/fish/functions/tide/configure/configs` for inspiration.
|
||||||
|
|
||||||
You can modify variables using `set --universal` from the command line or `set --global` in your `config.fish` file.
|
You can modify variables using `set --universal` from the command line or `set --global` in your `config.fish` file.
|
||||||
|
|
||||||
|
@ -5,9 +5,8 @@ function _tide_sub_test
|
|||||||
_tide_test_help
|
_tide_test_help
|
||||||
return 0
|
return 0
|
||||||
else if set -q _flag_install
|
else if set -q _flag_install
|
||||||
# Install fisher and spout for testing
|
# Install scuba, spout, and clownfish for testing
|
||||||
curl git.io/fisher --create-dirs -sLo $__fish_config_dir/functions/fisher.fish
|
curl -sL git.io/scuba-install | source && _scuba_sub_install ilancosman/scuba IlanCosman/spout IlanCosman/clownfish
|
||||||
fisher add IlanCosman/spout IlanCosman/clownfish
|
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -84,7 +83,7 @@ function _tide_test_help
|
|||||||
'display test output even if passed' \
|
'display test output even if passed' \
|
||||||
'run all available tests' \
|
'run all available tests' \
|
||||||
'print this help message' \
|
'print this help message' \
|
||||||
'install fisher and spout test dependencies' \
|
'install testing dependencies' \
|
||||||
'run tests designed for CI'
|
'run tests designed for CI'
|
||||||
|
|
||||||
printf '%s\n' 'Usage: '$bl'tide test '$n'[options] '$b'[TESTS...]'$n
|
printf '%s\n' 'Usage: '$bl'tide test '$n'[options] '$b'[TESTS...]'$n
|
||||||
|
@ -1,102 +0,0 @@
|
|||||||
function _tide_actual_install
|
|
||||||
argparse 'l/local' 'u/unattended' -- $argv
|
|
||||||
|
|
||||||
set -l location $argv[1]
|
|
||||||
if test -z "$location"
|
|
||||||
set location 'main'
|
|
||||||
end
|
|
||||||
|
|
||||||
set -gx TERM xterm # Necessary for testing purposes, ensures color codes are printed
|
|
||||||
|
|
||||||
printf '%s\n' 'Installing tide theme...'
|
|
||||||
|
|
||||||
# -----------------Download Files-----------------
|
|
||||||
set -lx tempDir '/tmp/tide_theme'
|
|
||||||
if test -e $tempDir
|
|
||||||
rm -rf $tempDir
|
|
||||||
end
|
|
||||||
|
|
||||||
# Copy/clone repository into $tempDir
|
|
||||||
if set -q _flag_local
|
|
||||||
cp -rf "$location" "$tempDir"
|
|
||||||
else
|
|
||||||
git clone --quiet --depth 1 --branch $location https://github.com/IlanCosman/tide.git $tempDir
|
|
||||||
end
|
|
||||||
|
|
||||||
for dir in completions conf.d functions tide_theme
|
|
||||||
cp -r "$tempDir/$dir" $__fish_config_dir
|
|
||||||
end
|
|
||||||
|
|
||||||
# --------------------Set Defaults--------------------
|
|
||||||
_set_immutables
|
|
||||||
|
|
||||||
set -U _tide_var_list
|
|
||||||
|
|
||||||
source "$_tide_dir/configure/choices/all/style.fish"
|
|
||||||
_load_config 'lean'
|
|
||||||
|
|
||||||
source "$_tide_dir/configure/choices/all/finish.fish"
|
|
||||||
_tide_finish
|
|
||||||
|
|
||||||
# -----------------------Finish-----------------------
|
|
||||||
for file in $_tide_file_list
|
|
||||||
source "$__fish_config_dir/$file"
|
|
||||||
end
|
|
||||||
source "$__fish_config_dir/functions/fish_prompt.fish"
|
|
||||||
|
|
||||||
set_color $_tide_color_green
|
|
||||||
printf '%s\n' 'Tide theme installed!'
|
|
||||||
set_color normal
|
|
||||||
printf '%s\n'
|
|
||||||
|
|
||||||
if not set -q _flag_unattended
|
|
||||||
if _user_confirm_defaultYes 'Configure tide prompt?'
|
|
||||||
tide configure
|
|
||||||
else
|
|
||||||
printf '%s\n'
|
|
||||||
printf '%s\n' 'Run tide configure to customize your prompt.'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
rm -rf $tempDir
|
|
||||||
end
|
|
||||||
|
|
||||||
function _set_immutables
|
|
||||||
set -U _tide_var_immutable_list
|
|
||||||
|
|
||||||
_set_immutable _tide_color_dark_blue 0087AF
|
|
||||||
_set_immutable _tide_color_dark_green 5FAF00
|
|
||||||
_set_immutable _tide_color_gold D7AF00
|
|
||||||
_set_immutable _tide_color_green 5FD700
|
|
||||||
_set_immutable _tide_color_light_blue 00AFFF
|
|
||||||
_set_immutable _tide_color_normal (set_color normal)
|
|
||||||
|
|
||||||
_set_immutable _tide_dir "$__fish_config_dir/tide_theme"
|
|
||||||
|
|
||||||
_set_immutable _tide_file_list (string replace "$tempDir/" '' $tempDir/{completions/*, conf.d/*, functions/*})
|
|
||||||
|
|
||||||
_set_immutable _tide_version 2.4.0
|
|
||||||
|
|
||||||
_set_immutable NVM_DIR $HOME/.nvm
|
|
||||||
_set_immutable VIRTUAL_ENV_DISABLE_PROMPT true
|
|
||||||
end
|
|
||||||
|
|
||||||
function _set_immutable -a var_name
|
|
||||||
set -U $var_name $argv[2..-1]
|
|
||||||
set -a _tide_var_immutable_list $var_name
|
|
||||||
end
|
|
||||||
|
|
||||||
function _user_confirm_defaultYes -a question
|
|
||||||
while true
|
|
||||||
read -P "$question [Y/n] " input
|
|
||||||
|
|
||||||
switch $input
|
|
||||||
case y Y yes Yes
|
|
||||||
return 0
|
|
||||||
case n N no No
|
|
||||||
return 1
|
|
||||||
case ''
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,30 +0,0 @@
|
|||||||
function tide_install
|
|
||||||
if not command -q git
|
|
||||||
printf '%s\n' 'Git must be available to install Tide.'
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l options l/local u/unattended
|
|
||||||
argparse $options -- $argv
|
|
||||||
|
|
||||||
# Pass through options to _tide_actual_install
|
|
||||||
for option in $options
|
|
||||||
set -l longFormOption (string split '/' $option)[2]
|
|
||||||
if set -q _flag_$longFormOption
|
|
||||||
set -a flags "--$longFormOption"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l location $argv[-1]
|
|
||||||
if test -z "$location"
|
|
||||||
set location 'main'
|
|
||||||
end
|
|
||||||
|
|
||||||
if set -q _flag_local
|
|
||||||
source "$location/tools/_tide_actual_install.fish"
|
|
||||||
else
|
|
||||||
curl --silent "https://raw.githubusercontent.com/IlanCosman/tide/$location/tools/_tide_actual_install.fish" | source
|
|
||||||
end
|
|
||||||
|
|
||||||
_tide_actual_install $flags $argv
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user