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.
83 lines
1.2 KiB
83 lines
1.2 KiB
#!/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 $?
|
|
|