12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/env bash
- # Generic btrfsmaintenance install script
- # Copyright 2021 Bryan C. Roessler
- parent="${BASH_SOURCE[0]}"
- parent=${parent%/*}
- [[ -f $parent/script-functions ]] && . "$parent"/script-functions || exit 1
- is_root
- # Optionally provide the config directory manually
- if [[ $# -lt 1 ]]; then
- if [[ -d /etc/sysconfig ]]; then
- CONFDIR=/etc/sysconfig
- elif [[ -d /etc/default ]]; then
- CONFDIR=/etc/default
- else
- echo "Cannot detect sysconfig directory, please specify manually"
- exit 1
- fi
- else
- CONFDIR="$1"
- fi
- # This is hardcoded by the btrfs maintenance scripts, change at your peril
- INSTALLDIR="/usr/share/btrfsmaintenance"
- # Backup existing installation
- if [[ -d "$INSTALLDIR" ]]; then
- TEMPDIR="/tmp/btrfs-maintenance.bk"
- echo "Moving existing $INSTALLDIR to $TEMPDIR"
- [[ -d "$TEMPDIR" ]] && rm -rf "$TEMPDIR"
- mv "$INSTALLDIR" "$TEMPDIR"
- fi
- git clone "https://github.com/kdave/btrfsmaintenance.git" "$INSTALLDIR"
- # Quirks
- if [[ -e "/etc/os-release" ]]; then
- source "/etc/os-release"
- if [[ "$ID" == "centos" && "$VERSION_ID" == "7" ]]; then
- sed -i 's/flock --verbose/flock' "$INSTALLDIR"/btrfsmaintenance-functions
- fi
- fi
- chmod 755 "$INSTALLDIR"/*.sh
- # Copy config file
- [[ ! -f "$CONFDIR"/btrfsmaintenance ]] && install -oroot -groot -m644 "$INSTALLDIR"/sysconfig.btrfsmaintenance "$CONFDIR"/btrfsmaintenance
- # Copy systemd files and reload
- for f in "$INSTALLDIR"/btrfs-*.{service,timer}; do
- cp "$f" /usr/lib/systemd/system/
- done
- systemctl daemon-reload
- # Optionally, start and enable the services
- # systemctl enable --now btrfs-scrub
- exit $?
|