mirror of
https://github.com/garethgeorge/backrest.git
synced 2025-12-08 06:45:32 +00:00
92 lines
2.3 KiB
Bash
Executable File
92 lines
2.3 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
cd "$(dirname "$0")" # cd to the directory of this script
|
|
|
|
install_unix() {
|
|
echo "Installing backrest to /usr/local/bin"
|
|
sudo mkdir -p /usr/local/bin
|
|
|
|
sudo cp $(ls -1 backrest | head -n 1) /usr/local/bin
|
|
}
|
|
|
|
create_systemd_service() {
|
|
if [ ! -d /etc/systemd/system ]; then
|
|
echo "Systemd not found. This script is only for systemd based systems."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Creating systemd service at /etc/systemd/system/backrest.service"
|
|
|
|
sudo tee /etc/systemd/system/backrest.service > /dev/null <<- EOM
|
|
[Unit]
|
|
Description=Backrest Service
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=$(whoami)
|
|
Group=$(whoami)
|
|
ExecStart=/usr/local/bin/backrest
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOM
|
|
|
|
echo "Reloading systemd daemon"
|
|
sudo systemctl daemon-reload
|
|
}
|
|
|
|
create_launchd_plist() {
|
|
echo "Creating launchd plist at /Library/LaunchAgents/com.backrest.plist"
|
|
|
|
sudo tee /Library/LaunchAgents/com.backrest.plist > /dev/null <<- EOM
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>Label</key>
|
|
<string>com.backrest</string>
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>/usr/local/bin/backrest</string>
|
|
</array>
|
|
<key>KeepAlive</key>
|
|
<true/>
|
|
<key>StandardOutPath</key>
|
|
<string>/tmp/backrest.log</string>
|
|
<key>StandardErrorPath</key>
|
|
<string>/tmp/backrest.log</string>
|
|
</dict>
|
|
</plist>
|
|
EOM
|
|
}
|
|
|
|
enable_launchd_plist() {
|
|
echo "Trying to unload any previous version of com.backrest.plist"
|
|
launchctl unload /Library/LaunchAgents/com.backrest.plist || true
|
|
echo "Loading com.backrest.plist"
|
|
launchctl load -w /Library/LaunchAgents/com.backrest.plist
|
|
}
|
|
|
|
OS=$(uname -s)
|
|
if [ "$OS" = "Darwin" ]; then
|
|
echo "Installing on Darwin"
|
|
install_unix
|
|
create_launchd_plist
|
|
enable_launchd_plist
|
|
sudo xattr -d com.apple.quarantine /usr/local/bin/backrest # remove quarantine flag
|
|
elif [ "$OS" = "Linux" ]; then
|
|
echo "Installing on Linux"
|
|
install_unix
|
|
create_systemd_service
|
|
echo "Enabling systemd service backrest.service"
|
|
sudo systemctl enable backrest
|
|
sudo systemctl start backrest
|
|
else
|
|
echo "Unknown OS: $OS. This script only supports Darwin and Linux."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Logs are available at /tmp/backrest.log"
|
|
echo "Access backrest WebUI at http://localhost:9898"
|