diff --git a/files/bash/editor.sh b/files/bash/editor.sh new file mode 100644 index 0000000..ebf10a7 --- /dev/null +++ b/files/bash/editor.sh @@ -0,0 +1,13 @@ +if command -v nano > /dev/null; then + e=nano +elif command -v nvim > /dev/null; then + e=nvim +elif command -v vim > /dev/null; then + e=vim +fi + +export EDITOR="${e}" +export VISUAL="${e}" +export SUDO_EDITOR="${e}" +unset e + diff --git a/files/bash/xbps-aliase.sh b/files/bash/xbps-aliase.sh index 1761d2f..39a84d5 100644 --- a/files/bash/xbps-aliase.sh +++ b/files/bash/xbps-aliase.sh @@ -4,11 +4,12 @@ alias xr="sudo xbps-remove -R" alias xs="xbps-query -Rs" alias backup="sudo void-backup" alias snapshot="sudo void-snapshot" -echo "xu = sudo void-update zum updaten" -echo "xi = sudo xbps-install -S zum installieren" -echo "xr = sudo xbps-remove -R zum deinstallieren" -echo "xs = xbps-query -Rs zum suchen" + +echo "xu = sudo void-update updaten" +echo "xi = sudo xbps-install -S installieren" +echo "xr = sudo xbps-remove -R deinstallieren" +echo "xs = xbps-query -Rs suchen" echo "" -echo "backup = sudo void-backup um ein backup zu machen" -echo "snapshot = sudo void-snapshot um ein snapshot zu machen" +echo "backup = sudo void-backup backup machen" +echo "snapshot = sudo void-snapshot snapshot machen" echo "" diff --git a/files/bin/void-snapshot b/files/bin/void-snapshot index b139164..73d496e 100644 --- a/files/bin/void-snapshot +++ b/files/bin/void-snapshot @@ -4,8 +4,104 @@ if [ "${UID}" -ne "0" ]; then exit 1 fi +config() { + echo "Durch Snapshots werden deine Daten regelmässig" + echo "(zur Zeit alle zwei Stunden), ohne mehr Platz" + echo "zu verbrauchen, gedoppelt." + echo "Dieses hilft zb. gegen unbeabsichtigtes löschen von Dateien." + echo "Du kannst aktivieren, das sie regelmässig gemacht werden." + echo "Du kannst aktivieren, das sie vor einem Update gemacht werden." + echo "Es ist sinnvoll dieses zu aktivieren." + echo "Es ist optional, Snapsshots auch für privaten Daten zu aktivieren." + echo "Achtung, Daten werden dadurch erst sehr verzögert gelöscht!" + while read -p "Regelmässige Snapshots aktivieren? [Y/n] " answer; do + test -z "${answer}" && answer="y" + case "${answer}" in + y*|Y*|j*|J*) + if ! grep -q "#void.system" /var/spool/cron/root; then + echo '0 */2 * * * /usr/bin/void-snapshot #void.system' >> /var/spool/cron/root + else + echo "Schon aktiviert." + fi + break + ;; + n*|N*) + if grep -q "#void.system" /var/spool/cron/root; then + sed -i '/#void.system/d' /var/spool/cron/root + else + echo "Schon deaktiviert." + fi + break + ;; + *) echo "Antwort nicht eindeutig." ;; + esac + done + + answer="" + while read -p "Snapshots vor dem Update? [Y/n] " answer; do + test -z "${answer}" && answer="y" + case "${answer}" in + y*|Y*|j*|J*) + if ! grep -q "SNAP_BEFORE_UPDATE" "/etc/void-snapshot.cfg"; then + echo "SNAP_BEFORE_UPDATE=true" >> "/etc/void-snapshot.cfg" + fi + break + ;; + n*|N*) + if grep -q "SNAP_BEFORE_UPDATE" "/etc/void-snapshot.cfg"; then + sed -i '/SNAP_BEFORE_UPDATE/d' "/etc/void-snapshot.cfg" + fi + break + ;; + *) echo "Antwort nicht eindeutig." ;; + esac + done + + answer="" + while read -p "Möchtest du auch deine Privaten Daten Snapshotten? [Y/n] " answer; do + test -z "${answer}" && answer="y" + case "${answer}" in + y*|Y*|j*|J*) + if ! grep -q "SNAP_HOME" "/etc/void-snapshot.cfg"; then + echo "SNAP_HOME=true" >> "/etc/void-snapshot.cfg" + fi + break + ;; + n*|N*) + if grep -q "SNAP_HOME" "/etc/void-snapshot.cfg"; then + sed -i '/SNAP_HOME/d' "/etc/void-snapshot.cfg" + fi + break + ;; + *) echo "Antwort nicht eindeutig." ;; + esac + done +} + +cron="" +update="" +if [ -t 0 ]; then + cron=1 +elif [ "${1}" = "update" ]; then + update=1 +elif [ "${1}" = "config" ]; then + config + exit +fi + cfg="/etc/btrbk/btrbk.conf.void" +if [ ! -f "/etc/void-snapshot.cfg" ]; then + test -z "${cron}" && exit 0 + config || exit +fi + +. "/etc/void-snapshot.cfg" + +if [ ! "${SNAP_BEFORE_UPDATE}" ] && [ "${update}" ]; then + exit 1 +fi + if [ -f /etc/btrbk/btrbk.conf ]; then btrbk --progress --quiet run snapshot else @@ -21,30 +117,10 @@ else done fi -if [[ "${1}" == "home" ]]; then +if [ "${SNAP_HOME}" ]; then btrbk --config="${cfg}" --quiet run snapshothomefs fi if ! sudo update-grub 2> /dev/null; then echo update-grub failed fi - -if [ -z "$PS1" ]; then - : -else - echo "System wurde snapshotted." - if [[ ! "${1}" == "home" ]]; then - echo "Private Daten wurden nicht snapshotted." - echo '`void-snaptshot home` um dieses mit zu snapshotten.' - if ! grep "#void.system" /var/spool/cron/root | grep -q "home"; then - echo "Folgender Befehl um das dauerhaft regelmässig zu machen." - echo '`sudo sed -i "s/t #/t home #/" /var/spool/cron/root`' - fi - elif [[ "${1}" == "home" ]]; then - echo "Private Daten wurden mit gesnapshotted." - if ! grep "#void.system" /var/spool/cron/root | grep -q "home"; then - echo "Folgender Befehl um das dauerhaft regelmässig zu machen." - echo '`sudo sed -i "s/t #/t home #/" /var/spool/cron/root`' - fi - fi -fi diff --git a/files/nm/30-wg0 b/files/nm/30-wg0 new file mode 100755 index 0000000..19b8fd7 --- /dev/null +++ b/files/nm/30-wg0 @@ -0,0 +1,19 @@ +#!/bin/sh +INTERFACE=$1 +ACTION=$2 + +if [ -f /etc/wirdeguard/wg0.conf ]; then + if [ ! "$INTERFACE" = "wg0" ]; then + case "$ACTION" in + up) + wg-quick up wg0 + # wg set wg0 peer ZJwTV2l+N+vFwL0KFQb5xpAPqwVcf0YvEMFzTaIoAU8= endpoint home.rotce.de:51820 + ;; + down) + wg-quick down wg0 + ip link delete dev wg0 + ;; + esac + fi +fi + diff --git a/files/sudoers/10-common b/files/sudoers/10-common index 457d0ff..bdd0108 100644 --- a/files/sudoers/10-common +++ b/files/sudoers/10-common @@ -2,7 +2,6 @@ Defaults timestamp_timeout=15 Defaults !tty_tickets Defaults umask = 022 Defaults passprompt="[sudo] Password: " -Defaults editor = /usr/bin/nvim Defaults env_keep += "EDITOR" Defaults env_keep += "SSH_CONNECTION"