D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
sbin
/
Filename :
lxd
back
Copy
#!/bin/sh SNAP_BIN="/snap/bin/${0##*/}" # Skip one symlink resolution and handle `snap install --dangerous` that are # missing the automatic `snap alias lxd.lxc lxc` alias. [ "${SNAP_BIN}" = "/snap/bin/lxc" ] && SNAP_BIN="/snap/bin/lxd.lxc" # Check if the requested binary and the LXD snap are missing if [ ! -f "${SNAP_BIN}" ] && ! snap list lxd >/dev/null 2>&1; then # If there is a terminal connected to stdin and stdout, ask for confirmation before # installing the needed snap(s) as it might take a while. if [ -t 0 ] && [ -t 1 ]; then echo -n "Would you like to install LXD snap now (Y/n)? " >&2 read -r answer if [ "${answer:-y}" != "y" ] && [ "${answer:-y}" != "Y" ]; then exit 1 fi fi if [ ! -e "/run/lxd-installer.socket" ]; then echo -n "Waiting for lxd-installer.socket to start" >&2 for _ in $(seq 10); do sleep 1 [ -e "/run/lxd-installer.socket" ] && break echo -n . >&2 done echo " done" >&2 fi if [ ! -w "/run/lxd-installer.socket" ]; then echo "Unable to trigger the installation of the LXD snap." >&2 echo "Please make sure you're a member of the 'lxd' system group." >&2 exit 1 fi echo "Installing LXD snap, please be patient." >&2 python3 -c 'import socket; s=socket.socket(socket.AF_UNIX); s.connect("/run/lxd-installer.socket"); s.send(b"x"); s.recv(1)' >&2 # Do not wait for the binary to show up if the snap installation failed. if ! snap list lxd >/dev/null 2>&1; then echo "Unable to trigger the installation of the LXD snap." >&2 exit 1 fi for _ in $(seq 90); do sleep 1 [ -x "${SNAP_BIN}" ] && break done fi exec "$SNAP_BIN" "$@"