🏡 index : quine-global-labs/mirror-get-aurora-dev-common.git

[Unit]
Description=Workaround incus not having the correct label
ConditionFileIsExecutable=/usr/bin/incus
ConditionFileIsExecutable=/usr/bin/incus-agent
ConditionPathExists=/usr/lib/incus
After=local-fs.target

[Service]
Type=oneshot
# Copy if it doesn't exist
ExecStartPre=/usr/bin/bash -c "[ -x /usr/local/bin/overrides/incus ] || /usr/bin/cp /usr/bin/incus /usr/local/bin/overrides/incus"
ExecStartPre=/usr/bin/bash -c "[ -x /usr/local/bin/overrides/incus-agent ] || /usr/bin/cp /usr/bin/incus /usr/local/bin/overrides/incus-agent"
ExecStartPre=/usr/bin/bash -c "[ -d /usr/local/lib/overrides/incus ] || /usr/bin/cp -R /usr/bin/incus /usr/local/lib/overrides/incus"
# This is faster than using .mount unit. Also allows for the previous line/cleanup
ExecStartPre=/usr/bin/mount --bind /usr/local/bin/overrides/incus /usr/bin/incus
ExecStartPre=/usr/bin/mount --bind /usr/local/bin/overrides/incus-agent /usr/bin/incus-agent
ExecStartPre=/usr/bin/mount --bind /usr/local/lib/overrides/incus /usr/lib/incus
# Fix SELinux label
ExecStart=/usr/sbin/restorecon /usr/bin/incus
ExecStart=/usr/sbin/restorecon /usr/bin/incus-agent
ExecStart=/usr/sbin/restorecon -R /usr/lib/incus
# Clean-up after ourselves
ExecStop=/usr/bin/umount /usr/bin/incus
ExecStop=/usr/bin/umount /usr/bin/incus-agent
ExecStop=/usr/bin/umount /usr/lib/incus
ExecStop=/usr/bin/rm /usr/local/bin/overrides/incus
ExecStop=/usr/bin/rm /usr/local/bin/overrides/incus-agent
ExecStop=/usr/bin/rm -r /usr/local/lib/overrides/incus
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target