This repository has been archived on 2024-03-04. You can view files and clone it, but cannot push or open issues or pull requests.
linux/.config/bash/module/toolbx.sh

81 lines
2.2 KiB
Bash

# Attach/create toolbx container with specified name.
# By default uses `main` name.
# Usage: tba [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 specified name.
# By default uses `main` 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 into container with specified name.
# By default uses `main` name.
# 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 available containers.
function tbl() {
toolbox list -c
}
# Autocomplete with available containers.
function _tb_containers() {
_autocomplete_first "$(toolbox list -c | sed -e '1d' | awk '{ print $2 }')"
}
complete -F _tb_containers tba tbk tb_rpmfusion