-#!/bin/sh
+#!/bin/bash
+
+if command -v doas > /dev/null 2>&1; then
+ PRIV_CMD="doas"
+elif command -v sudo > /dev/null 2>&1; then
+ PRIV_CMD="sudo"
+elif [ "$(id -u)" -eq 0 ]; then
+ PRIV_CMD=""
+else
+ echo "Error: No possibility to get administrative prileges."
+fi
case "$1" in
refresh)
- doas emaint sync -A
- doas emerge -avuDN @world "${@:2}"
+ "$PRIV_CMD" emaint sync -A
+ "$PRIV_CMD" emerge -avuDN @world "${@:2}"
;;
- log)
- grep -i --color=auto -i "completed" /var/log/emerge.log
- echo "note: use 'date -d @[unixtime]' to convert the timestamp"
+ again)
+ "$PRIV_CMD" emerge -avuDN @world "${@:2}"
+ exit 0
;;
clean)
- doas emerge -a --depclean "${@:2}"
+ "$PRIV_CMD" emerge -a --depclean "${@:2}"
;;
- now)
- doas emerge -avuDN @world "${@:2}"
+ log)
+ grep -i --color=auto -i "completed" /var/log/emerge.log
+ echo "note: use 'date -d @[unixtime]' to convert the timestamp"
;;
test)
echo "${@:2}"
;;
+ "1")
+ "$PRIV_CMD" emerge -1av "${@:2}"
+ ;;
+ "av")
+ "$PRIV_CMD" emerge -av "${@:2}"
+ ;;
*)
- echo "Currently available commands: 'clean', 'refresh', 'log', 'now'"
+ echo "Currently available commands: 'refresh', 'again', 'clean', 'log', 'av', '1'"
esac