# attach/create toolbx container with default or specified name. # usage: tb [NAME] function tba() { local name="${1}" # set default name. if [[ "${name}" = "" ]]; then name="main" fi # start container or run command inside it if specified. if [[ "${2}" = "" ]]; then # set hostname. toolbox --container "${name}" run sudo hostname "${HOSTNAME}-${name}" # try to enter or create if failed. toolbox enter "${name}" || { # create container. toolbox create "${name}" # initialize container. toolbox --container "${name}" run sudo hostname "${HOSTNAME}-${name}" # toolbox --container "$name" run sudo rm /root/.bashrc # toolbox --container "$name" run sudo ln -s $HOME/.linux /root/.linux # toolbox --container "$name" run sudo ln -s /root/.linux/bash/bashrc.sh /root/.bashrc # enter container, finally. toolbox enter "${name}" } else # set hostname. toolbox --container "${name}" run sudo hostname "${HOSTNAME}-${name}" # run command inside container. toolbox --container "${name}" run ${@:2} fi } # remove toolbx container with default or specified name. # usage: tbk [NAME] function tbk() { local name="${1}" # set default name. if [[ "${name}" = "" ]]; then name="main" fi # stop and remove podman container. podman stop "${name}" > /dev/null && podman rm "${name}" > /dev/null } # install rpm-fusion repository. # usage: tb_rpmfusion [NAME] function tb_rpmfusion() { local name="${1}" # set default name. if [[ "${name}" = "" ]]; then name="main" fi # run dnf inside container. toolbox --container "${name}" run sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm } # list all containers. function tbl() { toolbox list -c } # autocomplete. function _tb_containers() { _autocomplete_first "$(toolbox list -c | sed -e '1d' | awk '{ print $2 }')" } complete -F _tb_containers tba tbk tb_rpmfusion