Compare commits
6 Commits
main
...
yage/dev/v
Author | SHA1 | Date | |
---|---|---|---|
b796021357 | |||
f5ec9cff8c | |||
9288e6642b | |||
71ba353fab | |||
28f60506bc | |||
7c7f015637 |
@ -52,13 +52,6 @@ custom:
|
||||
useradd -m ci
|
||||
echo "ci ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||
|
||||
temp-downgrade-fakeroot:
|
||||
- &archlinux-temp-downgrade-fakeroot
|
||||
run:
|
||||
name: downgrade fakeroot to v1.34 (v1.35 and v1.36 are confirmed to break)
|
||||
command: |
|
||||
pacman -U --noconfirm https://archive.archlinux.org/packages/f/fakeroot/fakeroot-1.34-1-x86_64.pkg.tar.zst
|
||||
|
||||
clone-aur:
|
||||
- &archlinux-clone-aur
|
||||
archlinux-run:
|
||||
@ -91,7 +84,6 @@ jobs:
|
||||
executor: archlinux
|
||||
steps:
|
||||
- *archlinux-prepare
|
||||
- *archlinux-temp-downgrade-fakeroot
|
||||
- *archlinux-clone-aur
|
||||
- *archlinux-clone-scwrypts
|
||||
- archlinux-run:
|
||||
@ -118,7 +110,6 @@ jobs:
|
||||
executor: archlinux
|
||||
steps:
|
||||
- *archlinux-prepare
|
||||
- *archlinux-temp-downgrade-fakeroot
|
||||
- *archlinux-clone-aur
|
||||
- archlinux-run:
|
||||
_name: update PKGBUILD and .SRCINFO
|
||||
|
@ -13,8 +13,8 @@ export DISCORD__DEFAULT_CHANNEL_ID=
|
||||
export DISCORD__DEFAULT_USERNAME=
|
||||
export DISCORD__DEFAULT_WEBHOOK=
|
||||
export LINEAR__API_TOKEN=
|
||||
export MEDIA_SYNC__S3_BUCKET=
|
||||
export MEDIA_SYNC__TARGETS=
|
||||
export MEDIA_SYNC__S3_BUCKET
|
||||
export MEDIA_SYNC__TARGETS
|
||||
export REDIS_AUTH=
|
||||
export REDIS_HOST=
|
||||
export REDIS_PORT=
|
||||
|
24
scwrypts
24
scwrypts
@ -23,15 +23,17 @@ source "$(dirname $(readlink -f "$0"))/zsh/lib/import.driver.zsh" || exit 42
|
||||
-y, --yes auto-accept all [yn] prompts through current scwrypt
|
||||
-e, --env <env-name> set environment; overwrites SCWRYPTS_ENV
|
||||
|
||||
-n shorthand for "--log-level 0"
|
||||
-v, --log-level <0-4> set incremental scwrypts log level to one of the following:
|
||||
0 : only command output and critical failures; skips logfile
|
||||
1 : include success / failure messages
|
||||
2 : include status update messages
|
||||
3 : (default) include warning messages
|
||||
4 : include debug messages
|
||||
-n shorthand for "--log-level 0"
|
||||
-v, --log-level [0-4] set incremental scwrypts log level to one of the following:
|
||||
0 : only command output and critical failures; skips logfile
|
||||
1 : include success / failure messages
|
||||
2 : include status update messages
|
||||
3 : (default) include warning messages
|
||||
4 : include debug messages
|
||||
|
||||
-o, --output <format> specify output format; one of: pretty,json (default: pretty)
|
||||
-o, --output specify output format; one of:
|
||||
pretty (default)
|
||||
json (experimental)
|
||||
|
||||
alternate commands
|
||||
-h, --help display this message and exit
|
||||
@ -171,14 +173,12 @@ source "$(dirname $(readlink -f "$0"))/zsh/lib/import.driver.zsh" || exit 42
|
||||
((SHIFT_COUNT+=1))
|
||||
[ $2 ] || { ERROR "missing value for argument $1"; break; }
|
||||
SEARCH_GROUP=$2
|
||||
GROUP=$2
|
||||
;;
|
||||
|
||||
-t | --type )
|
||||
((SHIFT_COUNT+=1))
|
||||
[ $2 ] || { ERROR "missing value for argument $1"; break; }
|
||||
SEARCH_TYPE=$2
|
||||
TYPE=$2
|
||||
;;
|
||||
|
||||
### runtime settings #####################
|
||||
@ -249,6 +249,7 @@ source "$(dirname $(readlink -f "$0"))/zsh/lib/import.driver.zsh" || exit 42
|
||||
echo $SCWRYPTS_AVAILABLE | head -n1
|
||||
echo $SCWRYPTS_AVAILABLE | grep ' [^/]*'$SEARCH_TYPE'[^/]* '
|
||||
} \
|
||||
| awk '{$2=""; print $0;}' \
|
||||
| sed 's/ \+$/'$(printf $__COLOR_RESET)'/; s/ \+/^/g' \
|
||||
| column -ts '^'
|
||||
)
|
||||
@ -258,8 +259,9 @@ source "$(dirname $(readlink -f "$0"))/zsh/lib/import.driver.zsh" || exit 42
|
||||
SCWRYPTS_AVAILABLE=$(
|
||||
{
|
||||
echo $SCWRYPTS_AVAILABLE | head -n1
|
||||
echo $SCWRYPTS_AVAILABLE | grep "$SEARCH_GROUP"'[^/ ]*$'
|
||||
echo $SCWRYPTS_AVAILABLE | grep "$SEARCH_GROUP"'[^/]*$'
|
||||
} \
|
||||
| awk '{$NF=""; print $0;}' \
|
||||
| sed 's/ \+$/'$(printf $__COLOR_RESET)'/; s/ \+/^/g' \
|
||||
| column -ts '^'
|
||||
)
|
||||
|
@ -1,12 +1,3 @@
|
||||
#
|
||||
# typically you do not need to reload this plugin in a single session;
|
||||
# if for some reason you do, you can run the following command and
|
||||
# source this file again
|
||||
#
|
||||
# unset __SCWRYPTS_PLUGIN_LOADED
|
||||
#
|
||||
[[ $__SCWRYPTS_PLUGIN_LOADED =~ true ]] && return 0
|
||||
|
||||
#####################################################################
|
||||
|
||||
: \
|
||||
@ -18,7 +9,7 @@
|
||||
}
|
||||
|
||||
__SCWRYPTS_PARSE() {
|
||||
SCWRYPT_SELECTION=$(scwrypts --list | fzf --ansi --prompt 'select a script : ' --header-lines 1)
|
||||
SCWRYPT_SELECTION=$(scwrypts --list | fzf --prompt 'select a script : ' --header-lines 1)
|
||||
LBUFFER= RBUFFER=
|
||||
[ $SCWRYPT_SELECTION ] || return 1
|
||||
|
||||
@ -31,193 +22,59 @@ __SCWRYPTS_PARSE() {
|
||||
|
||||
#####################################################################
|
||||
|
||||
[ $SCWRYPTS_SHORTCUT ] && {
|
||||
SCWRYPTS__ZSH_PLUGIN() {
|
||||
local SCWRYPT_SELECTION NAME TYPE GROUP
|
||||
__SCWRYPTS_PARSE || { zle accept-line; return 0; }
|
||||
SCWRYPTS__ZSH_PLUGIN() {
|
||||
local SCWRYPT_SELECTION NAME TYPE GROUP
|
||||
__SCWRYPTS_PARSE || { zle accept-line; return 0; }
|
||||
|
||||
RBUFFER="scwrypts --name $NAME --type $TYPE --group $GROUP"
|
||||
RBUFFER="scwrypts --name $NAME --type $TYPE --group $GROUP"
|
||||
zle accept-line
|
||||
}
|
||||
|
||||
zle -N scwrypts SCWRYPTS__ZSH_PLUGIN
|
||||
bindkey $SCWRYPTS_SHORTCUT scwrypts
|
||||
unset SCWRYPTS_SHORTCUT
|
||||
|
||||
#####################################################################
|
||||
|
||||
SCWRYPTS__ZSH_BUILDER_PLUGIN() {
|
||||
local SCWRYPT_SELECTION NAME TYPE GROUP
|
||||
__SCWRYPTS_PARSE || { echo >&2; zle accept-line; return 0; }
|
||||
echo $SCWRYPT_SELECTION >&2
|
||||
|
||||
scwrypts -n --name $NAME --group $GROUP --type $TYPE -- --help >&2 || {
|
||||
zle accept-line
|
||||
return 0
|
||||
}
|
||||
echo
|
||||
|
||||
zle -N scwrypts SCWRYPTS__ZSH_PLUGIN
|
||||
bindkey $SCWRYPTS_SHORTCUT scwrypts
|
||||
unset SCWRYPTS_SHORTCUT
|
||||
zle reset-prompt
|
||||
LBUFFER="scwrypts --name $NAME --type $TYPE --group $GROUP -- "
|
||||
}
|
||||
|
||||
zle -N scwrypts-builder SCWRYPTS__ZSH_BUILDER_PLUGIN
|
||||
bindkey $SCWRYPTS_BUILDER_SHORTCUT scwrypts-builder
|
||||
unset SCWRYPTS_BUILDER_SHORTCUT
|
||||
|
||||
#####################################################################
|
||||
|
||||
[ $SCWRYPTS_BUILDER_SHORTCUT ] && {
|
||||
SCWRYPTS__ZSH_BUILDER_PLUGIN() {
|
||||
local SCWRYPT_SELECTION NAME TYPE GROUP
|
||||
__SCWRYPTS_PARSE || { echo >&2; zle accept-line; return 0; }
|
||||
echo $SCWRYPT_SELECTION >&2
|
||||
SCWRYPTS__ZSH_PLUGIN_ENV() {
|
||||
local RESET='reset'
|
||||
local SELECTED=$(\
|
||||
{ [ $SCWRYPTS_ENV ] && echo $RESET; scwrypts --list-envs; } \
|
||||
| fzf --prompt 'select an environment : ' \
|
||||
)
|
||||
|
||||
scwrypts -n --name $NAME --group $GROUP --type $TYPE -- --help >&2 || {
|
||||
zle accept-line
|
||||
return 0
|
||||
}
|
||||
echo
|
||||
|
||||
zle reset-prompt
|
||||
LBUFFER="scwrypts --name $NAME --type $TYPE --group $GROUP -- "
|
||||
zle clear-command-line
|
||||
[ $SELECTED ] && {
|
||||
[[ $SELECTED =~ ^$RESET$ ]] \
|
||||
&& RBUFFER='unset SCWRYPTS_ENV' \
|
||||
|| RBUFFER="export SCWRYPTS_ENV=$SELECTED"
|
||||
}
|
||||
|
||||
zle -N scwrypts-builder SCWRYPTS__ZSH_BUILDER_PLUGIN
|
||||
bindkey $SCWRYPTS_BUILDER_SHORTCUT scwrypts-builder
|
||||
unset SCWRYPTS_BUILDER_SHORTCUT
|
||||
zle accept-line
|
||||
}
|
||||
|
||||
zle -N scwrypts-setenv SCWRYPTS__ZSH_PLUGIN_ENV
|
||||
bindkey $SCWRYPTS_ENV_SHORTCUT scwrypts-setenv
|
||||
unset SCWRYPTS_ENV_SHORTCUT
|
||||
|
||||
#####################################################################
|
||||
|
||||
[ $SCWRYPTS_ENV_SHORTCUT ] && {
|
||||
SCWRYPTS__ZSH_PLUGIN_ENV() {
|
||||
local RESET='reset'
|
||||
local SELECTED=$(\
|
||||
{ [ $SCWRYPTS_ENV ] && echo $RESET; scwrypts --list-envs; } \
|
||||
| fzf --prompt 'select an environment : ' \
|
||||
)
|
||||
|
||||
zle clear-command-line
|
||||
[ $SELECTED ] && {
|
||||
[[ $SELECTED =~ ^$RESET$ ]] \
|
||||
&& RBUFFER='unset SCWRYPTS_ENV' \
|
||||
|| RBUFFER="export SCWRYPTS_ENV=$SELECTED"
|
||||
}
|
||||
zle accept-line
|
||||
}
|
||||
|
||||
zle -N scwrypts-setenv SCWRYPTS__ZSH_PLUGIN_ENV
|
||||
bindkey $SCWRYPTS_ENV_SHORTCUT scwrypts-setenv
|
||||
unset SCWRYPTS_ENV_SHORTCUT
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
# badass(/terrifying?) zsh autocompletion
|
||||
command -v compdef &>/dev/null && {
|
||||
_scwrypts() {
|
||||
echo $words | grep -q "\s--\s" && _arguments && return 0
|
||||
eval "_arguments $(
|
||||
{
|
||||
HELP=$(scwrypts --help 2>&1 | sed -n 's/^\s\+\(-.* .\)/\1/p' | sed 's/[[]/(/g; s/[]]/)/g')
|
||||
echo $HELP \
|
||||
| sed 's/^\(\(-[^-\s]\),*\s*\|\)\(\(--[-a-z0-9A-Z\]*\)\s\(<\([^>]*\)>\|\)\|\)\s\+\(.*\)/\2[\7]:\6:->\2/' \
|
||||
| grep -v '^[[]' \
|
||||
;
|
||||
|
||||
echo $HELP \
|
||||
| sed 's/^\(\(-[^-\s]\),*\s*\|\)\(\(--[-a-z0-9A-Z\]*\)\s\(<\([^>]*\)>\|\)\|\)\s\+\(.*\)/\4[\7]:\6:->\4/' \
|
||||
| grep -v '^[[]' \
|
||||
;
|
||||
|
||||
echo ":pattern:->pattern"
|
||||
echo ":pattern:->pattern"
|
||||
echo ":pattern:->pattern"
|
||||
echo ":pattern:->pattern"
|
||||
echo ":pattern:->pattern"
|
||||
|
||||
} | sed 's/::->.*$//g' | sed "s/\\(^\\|$\\)/'/g" | tr '\n' ' '
|
||||
)"
|
||||
|
||||
local _group=''
|
||||
echo $words | grep -q ' -g [^\s]' \
|
||||
&& _group=$(echo $words | sed 's/.*-g \([^ ]\+\)\s*.*/\1/')
|
||||
echo $words | grep -q ' --group .' \
|
||||
&& _group=$(echo $words | sed 's/.*--group \([^ ]\+\)\s*.*/\1/')
|
||||
|
||||
local _type=''
|
||||
echo $words | grep -q ' -t [^\s]' \
|
||||
&& _type=$(echo $words | sed 's/.*-t \([^ ]\+\)\s*.*/\1/')
|
||||
echo $words | grep -q ' --type .' \
|
||||
&& _type=$(echo $words | sed 's/.*--type \([^ ]\+\)\s*.*/\1/')
|
||||
|
||||
local _name=''
|
||||
echo $words | grep -q ' -m [^\s]' \
|
||||
&& _name=$(echo $words | sed 's/.*-m \([^ ]\+\)\s*.*/\1/')
|
||||
echo $words | grep -q ' --name .' \
|
||||
&& _name=$(echo $words | sed 's/.*--name \([^ ]\+\)\s*.*/\1/')
|
||||
|
||||
local _pattern _patterns=()
|
||||
[ ! $_name ] \
|
||||
&& _patterns=($(echo "${words[@]:1}" | sed 's/\s\+/\n/g' | grep -v '^-'))
|
||||
|
||||
_get_remaining_scwrypts() {
|
||||
[ $_name ] || local _name='[^ ]\+'
|
||||
[ $_type ] || local _type='[^ ]\+'
|
||||
[ $_group ] || local _group='[^ ]\+'
|
||||
|
||||
local remaining=$(\
|
||||
scwrypts --list \
|
||||
| sed "1d; s,\x1B\[[0-9;]*[a-zA-Z],,g" \
|
||||
| grep "^$_name\s" \
|
||||
| grep "\s$_group$" \
|
||||
| grep "\s$_type\s" \
|
||||
)
|
||||
|
||||
for _pattern in ${_patterns[@]}
|
||||
do
|
||||
remaining=$(echo "$remaining" | grep "$_pattern")
|
||||
done
|
||||
|
||||
echo "$remaining"
|
||||
}
|
||||
|
||||
case $state in
|
||||
( -m | --name )
|
||||
compadd $(_get_remaining_scwrypts | awk '{print $1;}' | sort -u)
|
||||
;;
|
||||
|
||||
( -t | --type )
|
||||
compadd $(_get_remaining_scwrypts | awk '{print $2;}' | sort -u)
|
||||
;;
|
||||
|
||||
( -g | --group )
|
||||
[[ $_name$_type$_group =~ ^$ ]] \
|
||||
&& compadd $(scwrypts --list-groups) \
|
||||
|| compadd $(_get_remaining_scwrypts | awk '{print $3;}' | sort -u) \
|
||||
;;
|
||||
|
||||
( -e | --env )
|
||||
compadd $(scwrypts --list-envs)
|
||||
;;
|
||||
|
||||
( -v | --log-level )
|
||||
local _help="$(\
|
||||
scwrypts --help 2>&1 \
|
||||
| sed -n '/-v, --log-level/,/^$/p' \
|
||||
| sed -n 's/\s\+\([0-9]\) : \(.*\)/\1 -- \2/p' \
|
||||
)"
|
||||
|
||||
eval "local _descriptions=($(echo "$_help" | sed "s/\\(^\|$\\)/'/g"))"
|
||||
local _values=($(echo "$_help" | sed 's/ --.*//'))
|
||||
compadd -d _descriptions -a _values
|
||||
;;
|
||||
|
||||
( -o | --output )
|
||||
compadd pretty json
|
||||
;;
|
||||
|
||||
( pattern )
|
||||
[[ $_name =~ ^$ ]] && {
|
||||
local _remaining_scwrypts="$(_get_remaining_scwrypts)"
|
||||
# stop providing suggestions if your pattern is sufficient
|
||||
[[ $(echo $_remaining_scwrypts | wc -l) -le 1 ]] && return 0
|
||||
|
||||
local _remaining_patterns="$(echo "$_remaining_scwrypts" | sed 's/\s\+/\n/g; s|/|\n|g;' | sort -u)"
|
||||
|
||||
for _pattern in ${_patterns[@]}
|
||||
do
|
||||
_remaining_patterns="$(echo "$_remaining_patterns" | grep -v "^$_pattern$")"
|
||||
done
|
||||
compadd $(echo $_remaining_patterns)
|
||||
}
|
||||
;;
|
||||
|
||||
( * ) ;;
|
||||
esac
|
||||
}
|
||||
compdef _scwrypts scwrypts
|
||||
}
|
||||
|
||||
__SCWRYPTS_PLUGIN_LOADED=true
|
||||
|
@ -25,7 +25,7 @@ export SCWRYPTS_ROOT__scwrypts="$SCWRYPTS_ROOT"
|
||||
|
||||
#####################################################################
|
||||
|
||||
DEFAULT_CONFIG="$SCWRYPTS_ROOT__scwrypts/zsh/lib/config.user.zsh"
|
||||
DEFAULT_CONFIG="$SCWRYPTS_ROOT/zsh/lib/config.user.zsh"
|
||||
source "$DEFAULT_CONFIG"
|
||||
|
||||
USER_CONFIG_OVERRIDES="$SCWRYPTS_CONFIG_PATH/config.zsh"
|
||||
@ -56,6 +56,7 @@ export \
|
||||
source "$SCWRYPTS_ROOT/scwrypts.scwrypts.zsh" \
|
||||
|| FAIL 69 'failed to set up scwrypts group; aborting'
|
||||
|
||||
SCWRYPTS_GROUPS=(scwrypts $(echo $SCWRYPTS_GROUPS | sed 's/\s\+/\n/g' | sort -u | grep -v '^scwrypts$'))
|
||||
|
||||
#####################################################################
|
||||
|
||||
@ -87,9 +88,5 @@ done
|
||||
done
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
SCWRYPTS_GROUPS=(scwrypts $(echo $SCWRYPTS_GROUPS | sed 's/\s\+/\n/g' | sort -u | grep -v '^scwrypts$'))
|
||||
|
||||
#####################################################################
|
||||
__SCWRYPT=1 # arbitrary; indicates currently inside a scwrypt
|
||||
|
@ -12,10 +12,7 @@ SCWRYPTS__RUN() { # context wrapper to run scwrypts within scwrypts
|
||||
local EXIT_CODE=0
|
||||
((SUBSCWRYPT+=1))
|
||||
|
||||
SCWRYPTS_LOG_LEVEL=$SCWRYPTS_LOG_LEVEL \
|
||||
SUBSCWRYPT=$SUBSCWRYPT \
|
||||
$SCWRYPTS_ROOT__scwrypts/scwrypts $@
|
||||
|
||||
SUBSCWRYPT=$SUBSCWRYPT $SCWRYPTS_ROOT/scwrypts $@
|
||||
EXIT_CODE=$?
|
||||
|
||||
((SUBSCWRYPT-=1))
|
||||
|
@ -12,7 +12,7 @@ SCWRYPTS__GET_AVAILABLE_SCWRYPTS() {
|
||||
local GROUP GROUP_PATH GROUP_COLOR LOOKUP_PIDS=()
|
||||
{
|
||||
echo 'NAME^TYPE^GROUP'
|
||||
for GROUP in ${SCWRYPTS_GROUPS[@]}
|
||||
for GROUP in ${SCWRYPTS_GROUPS}
|
||||
do
|
||||
GROUP_PATH=$(eval echo '$SCWRYPTS_ROOT__'$GROUP)
|
||||
GROUP_COLOR=$(eval echo '$SCWRYPTS_COLOR__'$GROUP)
|
||||
@ -94,7 +94,7 @@ SCWRYPTS__GET_RUNSTRING() {
|
||||
}
|
||||
|
||||
RUNSTRING="SCWRYPTS_ENV=$ENV_NAME; $RUNSTRING"
|
||||
RUNSTRING="source $SCWRYPTS_ROOT__scwrypts/zsh/lib/import.driver.zsh; $RUNSTRING"
|
||||
RUNSTRING="source $SCWRYPTS_ROOT/zsh/lib/import.driver.zsh; $RUNSTRING"
|
||||
|
||||
local _VIRTUALENV=$(eval echo '$SCWRYPTS_VIRTUALENV_PATH__'$SCWRYPT_GROUP'/$SCWRYPT_TYPE/bin/activate')
|
||||
[ -f $_VIRTUALENV ] && RUNSTRING="source $_VIRTUALENV; $RUNSTRING"
|
||||
|
@ -124,7 +124,7 @@ UPDATE_VIRTUALENV__scwrypts__py() {
|
||||
PIP_INSTALL_ARGS+=(--no-cache-dir)
|
||||
PIP_INSTALL_ARGS+=(-r requirements.txt)
|
||||
|
||||
cd "$SCWRYPTS_ROOT__scwrypts/py"
|
||||
cd "$SCWRYPTS_ROOT/py"
|
||||
pip install ${PIP_INSTALL_ARGS[@]}
|
||||
}
|
||||
|
||||
@ -161,9 +161,7 @@ ACTIVATE_VIRTUALENV__scwrypts__zx() {
|
||||
UPDATE_VIRTUALENV__scwrypts__zx() {
|
||||
local NPM_INSTALL_ARGS=()
|
||||
|
||||
[ $CI ] && NPM_INSTALL_ARGS+=(--ignore-scripts)
|
||||
|
||||
cd "$SCWRYPTS_ROOT__scwrypts/zx"
|
||||
cd "$SCWRYPTS_ROOT/zx"
|
||||
npm install ${NPM_INSTALL_ARGS[@]}
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,5 @@
|
||||
FZF() {
|
||||
[ $CI ] && {
|
||||
DEBUG "invoked FZF with $@"
|
||||
FAIL 1 'currently in CI, but FZF requires user input'
|
||||
}
|
||||
[ $CI ] && FAIL 1 'currently in CI, but FZF requires user input'
|
||||
|
||||
local FZF_ARGS=()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user