You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.2 KiB
84 lines
1.2 KiB
5 years ago
|
#!/usr/bin/env bash
|
||
|
|
||
|
NOTIFY=0
|
||
|
PRINTPATH=0
|
||
|
|
||
|
function print_help(){
|
||
|
echo -e "current\t\tPrints the current project"
|
||
|
echo -e "\t--notify\tUses notify send to print current project"
|
||
|
echo -e "\t--path\tPrints the full path rather than the name"
|
||
|
}
|
||
|
|
||
|
function get_name(){
|
||
|
local path=$(get_path)
|
||
|
local name
|
||
|
if [ $? -eq "0" ]; then
|
||
|
if [ -f "$path"/index.yaml ]; then
|
||
|
name=$(cat "$path/index.yaml" | yq -r '.name')
|
||
|
fi
|
||
|
if [ -z "$name" ]; then
|
||
|
name=$(basename "$path")
|
||
|
fi
|
||
|
echo "$name"
|
||
|
exit 0
|
||
|
fi
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
function get_path(){
|
||
|
if [ -L "$SYMLINC" ]; then
|
||
|
readlink "$SYMLINC"
|
||
|
exit 0
|
||
|
fi
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
function get_current(){
|
||
|
local ret
|
||
|
if [ "$PRINTPATH" -eq 1 ]; then
|
||
|
ret=$(get_path)
|
||
|
else
|
||
|
ret=$(get_name)
|
||
|
fi
|
||
|
|
||
|
if [ "$NOTIFY" -eq 1 ]; then
|
||
|
if [ -n "$ret" ]; then
|
||
|
notify-send "Current Project" "$ret"
|
||
|
else
|
||
|
notify-send "Current Project" "Not Set"
|
||
|
fi
|
||
|
else
|
||
|
echo "$ret"
|
||
|
fi
|
||
|
|
||
|
if [ -n "$ret" ]; then
|
||
|
exit 0
|
||
|
else
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
while [ -n "$1" ]; do
|
||
|
case "$1" in
|
||
|
-h|--help)
|
||
|
print_help | column -t -s" "
|
||
|
exit 0
|
||
|
;;
|
||
|
--parent-help)
|
||
|
print_help
|
||
|
exit 0
|
||
|
;;
|
||
|
--notify)
|
||
|
NOTIFY=1
|
||
|
shift
|
||
|
;;
|
||
|
--path)
|
||
|
PRINTPATH=1
|
||
|
shift
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
get_current
|
||
|
exit $?
|