Ver Fonte

Add asdf plugin to Fish and rename el8

Using de as a shortcut for docker-compose elation, becuase two keys is
better than three!
Colin Powell há 6 anos atrás
pai
commit
69ed49c526

+ 70 - 0
config/fish/completions/asdf.bash

@@ -0,0 +1,70 @@
+#!/usr/bin/env bash
+
+_asdf () {
+  local cur
+  cur=${COMP_WORDS[COMP_CWORD]}
+  local cmd
+  cmd=${COMP_WORDS[1]}
+  local prev
+  prev=${COMP_WORDS[COMP_CWORD-1]}
+  local plugins
+  plugins=$(asdf plugin-list 2> /dev/null | tr '\n' ' ')
+
+  # We can safely ignore warning SC2207 since it warns that it will uses the
+  # shell's sloppy word splitting and globbing. The possible commands here are
+  # all single words, and most likely won't contain special chars the shell will
+  # expand.
+  COMPREPLY=()
+
+  case "$cmd" in
+    plugin-update)
+      # shellcheck disable=SC2207
+      COMPREPLY=($(compgen -W "$plugins --all" -- "$cur"))
+      ;;
+    plugin-remove|current|list|list-all)
+      # shellcheck disable=SC2207
+      COMPREPLY=($(compgen -W "$plugins" -- "$cur"))
+      ;;
+    plugin-add)
+      local available_plugins
+      available_plugins=$( (asdf plugin-list 2> /dev/null && asdf plugin-list-all 2> /dev/null) | sort | uniq -u)
+      # shellcheck disable=SC2207
+      COMPREPLY=($(compgen -W "$available_plugins" -- "$cur"))
+      ;;
+    install)
+      if [[ "$plugins" == *"$prev"* ]] ; then
+        local versions
+        versions=$(asdf list-all "$prev" 2> /dev/null)
+        # shellcheck disable=SC2207
+        COMPREPLY=($(compgen -W "$versions" -- "$cur"))
+      else
+        # shellcheck disable=SC2207
+        COMPREPLY=($(compgen -W "$plugins" -- "$cur"))
+      fi
+      ;;
+    update)
+      # shellcheck disable=SC2207
+      COMPREPLY=($(compgen -W "--head" -- "$cur"))
+      ;;
+    uninstall|where|reshim|local|global)
+      if [[ "$plugins" == *"$prev"* ]] ; then
+        local versions
+        versions=$(asdf list "$prev" 2> /dev/null)
+        # shellcheck disable=SC2207
+        COMPREPLY=($(compgen -W "$versions" -- "$cur"))
+      else
+        # shellcheck disable=SC2207
+        COMPREPLY=($(compgen -W "$plugins" -- "$cur"))
+      fi
+      ;;
+    *)
+      local cmds='current global help install list list-all local plugin-add plugin-list plugin-list-all plugin-remove plugin-update reshim uninstall update where which '
+      # shellcheck disable=SC2207
+      COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
+      ;;
+  esac
+
+  return 0
+}
+
+complete -F _asdf asdf

+ 110 - 0
config/fish/completions/asdf.fish

@@ -0,0 +1,110 @@
+function __fish_asdf_needs_command
+    set -l cmd (commandline -opc)
+    if test (count $cmd) -eq 1
+        return 0
+    end
+    return 1
+end
+
+function __fish_asdf_using_command -a current_command
+    set -l cmd (commandline -opc)
+    if test (count $cmd) -gt 1
+        if test $current_command = $cmd[2]
+            return 0
+        end
+    end
+    return 1
+end
+
+function __fish_asdf_arg_number -a number
+    set -l cmd (commandline -opc)
+    test (count $cmd) -eq $number
+end
+
+function __fish_asdf_arg_at -a number
+    set -l cmd (commandline -opc)
+    echo $cmd[$number]
+end
+
+function __fish_asdf_list_versions -a plugin
+    asdf list $plugin 2> /dev/null | sed -e 's/^\s*//'
+end
+
+function __fish_asdf_list_all -a plugin
+    asdf list-all $plugin 2> /dev/null
+end
+
+function __fish_asdf_plugin_list
+    asdf plugin-list 2> /dev/null
+end
+
+function __fish_asdf_plugin_list_all
+    asdf plugin-list-all 2> /dev/null
+end
+
+# plugin-add completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a plugin-add -d "Add git repo as plugin"
+complete -f -c asdf -n '__fish_asdf_using_command plugin-add; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list_all | grep -v \'*\' | awk \'{ print $1 }\')'
+complete -f -c asdf -n '__fish_asdf_using_command plugin-add; and __fish_asdf_arg_number 3' -a '(__fish_asdf_plugin_list_all | grep (__fish_asdf_arg_at 3) | awk \'{ print $2 }\')'
+complete -f -c asdf -n '__fish_asdf_using_command plugin-add; and __fish_asdf_arg_number 4'
+
+# plugin-list completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a plugin-list -d "List installed plugins"
+
+# plugin-list-all completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a plugin-list-all -d "List all existing plugins"
+
+# plugin-remove completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a plugin-remove -d "Remove plugin and package versions"
+complete -f -c asdf -n '__fish_asdf_using_command plugin-remove; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+
+# plugin-update completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a plugin-update -d "Update plugin"
+complete -f -c asdf -n '__fish_asdf_using_command plugin-update; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command plugin-update; and __fish_asdf_arg_number 2' -a --all
+
+# install completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a install -d "Install a specific version of a package"
+complete -f -c asdf -n '__fish_asdf_using_command install; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command install; and __fish_asdf_arg_number 3' -a '(__fish_asdf_list_all (__fish_asdf_arg_at 3))'
+
+# uninstall completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a uninstall -d "Remove a specific version of a package"
+complete -f -c asdf -n '__fish_asdf_using_command uninstall; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command uninstall; and __fish_asdf_arg_number 3' -a '(__fish_asdf_list_versions (__fish_asdf_arg_at 3))'
+
+# current completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a current -d "Display version set or being used for package"
+complete -f -c asdf -n '__fish_asdf_using_command current; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+
+# where completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a where -d "Display install path for an installed version"
+complete -f -c asdf -n '__fish_asdf_using_command where; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command where; and __fish_asdf_arg_number 3' -a '(__fish_asdf_list_versions (__fish_asdf_arg_at 3))'
+
+# list completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a list -d "List installed versions of a package"
+complete -f -c asdf -n '__fish_asdf_using_command list; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+
+# list-all completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a list-all -d "List all versions of a package"
+complete -f -c asdf -n '__fish_asdf_using_command list-all; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+
+# reshim completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a reshim -d "Recreate shims for version of a package"
+complete -f -c asdf -n '__fish_asdf_using_command reshim; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command reshim; and __fish_asdf_arg_number 3' -a '(__fish_asdf_list_versions (__fish_asdf_arg_at 3))'
+
+# local completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a local -d "Set local version for a plugin"
+complete -f -c asdf -n '__fish_asdf_using_command local; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command local; and test (count (commandline -opc)) -gt 2' -a '(__fish_asdf_list_versions (__fish_asdf_arg_at 3)) system'
+
+# global completion
+complete -f -c asdf -n '__fish_asdf_needs_command' -a global -d "Set global version for a plugin"
+complete -f -c asdf -n '__fish_asdf_using_command global; and __fish_asdf_arg_number 2' -a '(__fish_asdf_plugin_list)'
+complete -f -c asdf -n '__fish_asdf_using_command global; and test (count (commandline -opc)) -gt 2' -a '(__fish_asdf_list_versions (__fish_asdf_arg_at 3)) system'
+
+# misc
+complete -f -c asdf -n '__fish_asdf_needs_command' -l "help" -d "Displays help"
+complete -f -c asdf -n '__fish_asdf_needs_command' -l "version" -d "Displays asdf version"

+ 1 - 0
config/fish/config.fish

@@ -0,0 +1 @@
+source ~/.asdf/asdf.fish

+ 1 - 0
config/fish/fishfile

@@ -5,3 +5,4 @@ fishgretel/fasd
 oh-my-fish/theme-bobthefish
 yyuu/pyenv
 2m/fish-gpg-tty
+asdf-vm/asdf

+ 15 - 0
config/fish/functions/asdf.fish

@@ -0,0 +1,15 @@
+#!/usr/bin/env fish
+
+set -l asdf_dir (dirname (status -f))
+set -l asdf_data_dir (
+  if test -n "$ASDF_DATA_DIR"; echo $ASDF_DATA_DIR;
+  else; echo $HOME/.asdf; end)
+
+# Add asdf to PATH
+set -l asdf_bin_dirs $asdf_dir/bin $asdf_dir/shims $asdf_data_dir/shims
+
+for x in $asdf_bin_dirs
+  if begin not contains $x $PATH; and test -d $x; end
+    set -gx PATH $x $PATH
+  end
+end

+ 1 - 1
config/fish/functions/el8.fish → config/fish/functions/de.fish

@@ -1,4 +1,4 @@
-function el8
+function de
 	pushd ~/devel/elationemr/hippo
 	docker-compose $argv
 	popd