Sindbad~EG File Manager
#!/bin/bash
set -e
set -o pipefail
# We need to add a "cut -b4-" everywhere because `dbus-send
# --print-reply=literal` indents the output by 3 spaces (hard-coded in
# dbus-print-message.c:print_iter).
# TODO: change this to busctl, it's much easier to use.
case "$1" in
get)
if [ $# -eq 3 ]; then
dbus-send --print-reply=literal --session --dest=io.snapcraft.Settings /io/snapcraft/Settings io.snapcraft.Settings.GetSub string:"$2" string:"$3" | cut -b4-
else
dbus-send --print-reply=literal --session --dest=io.snapcraft.Settings /io/snapcraft/Settings io.snapcraft.Settings.Get string:"$2" | cut -b4-
fi
;;
set)
# Timeout of 300s to ensure the user has enough time to make a decision
if [ $# -eq 4 ]; then
dbus-send --reply-timeout=300000 --print-reply=literal --session --dest=io.snapcraft.Settings /io/snapcraft/Settings io.snapcraft.Settings.SetSub string:"$2" string:"$3" string:"$4" | cut -b4-
else
dbus-send --reply-timeout=300000 --print-reply=literal --session --dest=io.snapcraft.Settings /io/snapcraft/Settings io.snapcraft.Settings.Set string:"$2" string:"$3" | cut -b4-
fi
;;
check)
if [ $# -eq 4 ]; then
dbus-send --print-reply=literal --session --dest=io.snapcraft.Settings /io/snapcraft/Settings io.snapcraft.Settings.CheckSub string:"$2" string:"$3" string:"$4" | cut -b4-
else
dbus-send --print-reply=literal --session --dest=io.snapcraft.Settings /io/snapcraft/Settings io.snapcraft.Settings.Check string:"$2" string:"$3" | cut -b4-
fi
;;
*)
>&2 echo "unknown action $*"
exit 1
;;
esac
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists