Compare commits

...

7 Commits

Author SHA1 Message Date
Adolfo Perez Alvarez 25a2f15ada Rename to kpick
I'm no longer using this, preferring miscutils/pick instead. Keeping
around as `kpick` just in case.
2023-09-12 17:06:32 +02:00
Adolfo Perez Alvarez 6d69430f0f Add makefile 2023-09-12 16:58:49 +02:00
Adolfo Perez Alvarez 151c120115 g - thin wrapper over `gh` 2023-09-12 16:58:49 +02:00
Adolfo Perez Alvarez ae82639757 pick - interactive selection of items 2023-09-12 16:58:49 +02:00
Adolfo Perez Alvarez 5913fd722a nsalias - namespaced aliases 2023-09-12 16:58:49 +02:00
Adolfo Perez Alvarez e57032ae8b jmod - quick jump to a module 2023-09-12 16:58:49 +02:00
Adolfo Perez Alvarez 8e49bcb05d diralias, j - Directory aliases and quick directory navigation 2023-06-28 14:01:07 +02:00
7 changed files with 136 additions and 0 deletions

6
Makefile Normal file
View File

@ -0,0 +1,6 @@
BINDIR?=${HOME}/.local/bin
cmds=g pick
fns=diralias j jmod nsalias
install:
install ${fns} $${FPATH:?FPATH not defined}
install ${cmds} ${BINDIR}

32
diralias Normal file
View File

@ -0,0 +1,32 @@
function diralias
{
typeset -i i=0
case $# in
0)
while (( i < ${#DIRALIASNAM[@]} ))
do
printf "%s\t%s\n" ${DIRALIASNAM[i]} "${DIRALIASVAL[i]}"
let i++
done
;;
1)
while [[ $i -lt ${#DIRALIASNAM[@]} && $1 != ${DIRALIASNAM[i]} ]]
do
let i++
done
(( i == ${#DIRALIASNAM[@]} )) && print $1 || print ${DIRALIASVAL[i]}
;;
2)
while [[ $i -lt ${#DIRALIASNAM[@]} && $1 != ${DIRALIASNAM[i]} ]]
do
let i++
done
DIRALIASNAM[i]=$1
DIRALIASVAL[i]="$2"
;;
*)
exit 64
;;
esac
}

19
g Executable file
View File

@ -0,0 +1,19 @@
#!/usr/bin/env ksh
if [[ $1 = "pc" || ( $1 = "pr" && $2 = "create" ) ]]
then
tmp=$(mktemp /tmp/g.XXXXXXXXXXX.md)
if [[ -f ~/.g.template ]]
then
lps=$(git show --pretty='format:%s' --no-patch | cut -d' ' -f1)
if [[ ! -z $lps ]]
then
url="https://issues.liferay.com/browse/"$lps
sed -e "s/{lps}/$lps/g" -e "s,{url},$url," <~/.g.template >$tmp
fi
fi
${GH_EDITOR:-${VISUAL:-${EDITOR:-ed}}} ${tmp} >/dev/null
gh $@ --title "$(head -1 $tmp)" --body "$(tail -n +3 $tmp)"
mv -f $tmp /tmp/g.lastpr
else
gh $@
fi

13
j Normal file
View File

@ -0,0 +1,13 @@
function j
{
typeset da
da=$(diralias $1)
if print $da | grep '^!' >/dev/null
then
if ! da=$(eval $(print "$da" | sed 's/^!//') 2>/dev/null)
then
return 65
fi
fi
'cd' "$da"
}

26
jmod Normal file
View File

@ -0,0 +1,26 @@
function jmod
{
typeset dir root sel
typeset -a dirs names
typeset -i i=0
(( $# != 1 )) && return 64
root=$(jr && pwd)/modules/apps
set -A dirs $(find $root -maxdepth 2 -mindepth 2 -type d -iregex ".*/[^/]*$1[^/]*" | sort)
(( ${#dirs[@]} == 0 )) && return 1
for dir in ${dirs[@]}
do
names[$i]=${dir##*/}
let i++
done
if (( ${#names[@]} > 1 ))
then
select sel in ${names[@]}
do
print ${sel} && cd ${dirs[(( REPLY - 1 ))]}
break;
done
else
print ${names[0]} && cd ${dirs[0]}
fi
}

8
kpick Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env ksh
(( $# == 0 )) && exit 64
(( $# == 1 )) && echo $1 && exit 0
select choice in "$@"
do
print $choice
break
done

32
nsalias Normal file
View File

@ -0,0 +1,32 @@
function nsalias {
typeset -i i=0
case $# in
0|1)
while (( i < ${#NSCMDNS[@]} ))
do
[[ ( -z $1 ) || ( ${NSCMDNS[i]} = $1 ) ]] \
&& print -c "${NSCMDNS[i]}\t${NSCMDFN[i]}\t${NSCMDSH[i]}"
let i++
done
;;
2)
while [[ $i -lt ${#NSCMDNS[@]} && ( ${NSCMDNS[i]} != $1 || ${NSCMDFN[i]} != $2 ) ]]
do
let i++
done
(( i == ${#NSCMDNS[@]} )) && return 1
eval "${NSCMDSH[i]}"
;;
3)
(( $# != 3 )) && return 64
NSCMDNS[${#NSCMDNS[@]}]=$1
NSCMDFN[${#NSCMDFN[@]}]=$2
NSCMDSH[${#NSCMDSH[@]}]=$3
! alias $1 >/dev/null && alias $1="nsalias $1"
;;
*)
return 64
;;
esac
}