43 lines
979 B
Bash
Executable File
43 lines
979 B
Bash
Executable File
#!/bin/bash
|
|
|
|
INSTALLATIONS_DIRECTORY=~/.dotfiles/installed_packages
|
|
|
|
function get_installations()
|
|
{
|
|
ls -l --time-style="long-iso" $INSTALLATIONS_DIRECTORY | grep -v ${HOSTNAME} | awk 'NR>1 {print $8}'
|
|
}
|
|
|
|
# Get selected installation to clone
|
|
if [ -z "$1" ]
|
|
then
|
|
if type wofi > /dev/null 2>&1
|
|
then
|
|
INSTALLATION=$( (echo empty; get_installations) | wofi -dmenu -only-match -p "Select host to clone installation from:")
|
|
else
|
|
PS3='Please select installation to clone: '
|
|
select opt in $(get_installations)
|
|
do
|
|
INSTALLATION=$opt
|
|
break
|
|
done
|
|
fi
|
|
else
|
|
INSTALLATION=$1
|
|
fi
|
|
|
|
SELECTED_INSTALL_DIR=$INSTALLATIONS_DIRECTORY/$INSTALLATION
|
|
|
|
if [ x"empty" = x"${INSTALLATION}" ]
|
|
then
|
|
echo "No operation."
|
|
elif [ -n "${INSTALLATION}" ]
|
|
then
|
|
# Go with the cloning process
|
|
if type alacritty > /dev/null 2>&1
|
|
then
|
|
alacritty --title "download" -e "clone-installation-from-directory $SELECTED_INSTALL_DIR"
|
|
else
|
|
clone-installation-from-directory $SELECTED_INSTALL_DIR
|
|
fi
|
|
fi
|