use notify-send if available
Signed-off-by: fbt <fbt@fleshless.org>
This commit is contained in:
parent
2b1353ac9c
commit
240d35cba3
24
sx-open
24
sx-open
|
@ -18,6 +18,18 @@ act() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notify() {
|
||||||
|
[[ $DISPLAY ]] || return 3
|
||||||
|
[[ $notifier ]] || return 5
|
||||||
|
|
||||||
|
"${notifier[@]}" 'sx-open' "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
error() {
|
||||||
|
printf '%s\n' "$*" >&2
|
||||||
|
notify "$*"
|
||||||
|
}
|
||||||
|
|
||||||
# handle_target <res> <uri>
|
# handle_target <res> <uri>
|
||||||
# 1: cmd failed
|
# 1: cmd failed
|
||||||
# 3: no handler
|
# 3: no handler
|
||||||
|
@ -122,21 +134,27 @@ main() {
|
||||||
# Treat file:// as local paths.
|
# Treat file:// as local paths.
|
||||||
[[ "$target" =~ ^file:(//)?(/.+) ]] && target=${BASH_REMATCH[2]}
|
[[ "$target" =~ ^file:(//)?(/.+) ]] && target=${BASH_REMATCH[2]}
|
||||||
|
|
||||||
|
# Figure out if we're in X and set $notifier if we are.
|
||||||
|
if [[ $DISPLAY ]]; then
|
||||||
|
# Do we have notify-send?
|
||||||
|
notifier=$(type -P 'notify-send')
|
||||||
|
fi
|
||||||
|
|
||||||
handle_target cmd_result "$target"
|
handle_target cmd_result "$target"
|
||||||
|
|
||||||
case $? in
|
case $? in
|
||||||
(1)
|
(1)
|
||||||
printf 'Action failed with exit code: “%s”\n' "$cmd_result" >&2
|
error "Action on “$target” failed with exit code: “$cmd_result”"
|
||||||
return 4
|
return 4
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(2)
|
(2)
|
||||||
printf 'No such file or directory: “%s”\n' "$target" >&2
|
error "No such file or directory: “$target”"
|
||||||
return 2
|
return 2
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(3)
|
(3)
|
||||||
printf 'No handlers found for “%s”\n' "$target" >&2
|
error "No handlers found for “$target”"
|
||||||
return 3
|
return 3
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Reference in New Issue
Block a user