86 lines
1.8 KiB
Bash
86 lines
1.8 KiB
Bash
# Switch bottle.
|
|
# Usage: bt <NAME>
|
|
function bt() {
|
|
export SHELL_NAME="${*}"
|
|
}
|
|
|
|
# Create new bottle.
|
|
# Usage: btc [ENV] [EXTRA]
|
|
function btc() {
|
|
local env="${1}"
|
|
[[ ${env} == "" ]] && env="gaming"
|
|
bottles-cli new --bottle-name "${SHELL_NAME}" --environment "${env}" "${@:2}"
|
|
}
|
|
|
|
# Run a file inside a bottle.
|
|
# Usage: btre <EXE> [EXTRA]
|
|
function btre() {
|
|
bottles-cli run -b "${SHELL_NAME}" -e "${@}"
|
|
}
|
|
|
|
# Run a program inside a bottle.
|
|
# Usage: btr <NAME> [EXTRA]
|
|
function btr() {
|
|
bottles-cli run -b "${SHELL_NAME}" -p "${@}"
|
|
}
|
|
|
|
# List bottles.
|
|
function btl() {
|
|
bottles-cli list bottles 2>/dev/null
|
|
}
|
|
|
|
# List programs in a bottle.
|
|
function btlp() {
|
|
bottles-cli programs -b "${SHELL_NAME}" 2>/dev/null
|
|
}
|
|
|
|
# Add a program to bottle.
|
|
# Usage: bta <NAME> <EXE> [EXTRA]
|
|
function bta() {
|
|
local name="${1}"
|
|
local exe=$(realpath "${2}")
|
|
if [[ ${exe} == "" ]]; then
|
|
help bta
|
|
return 2
|
|
fi
|
|
|
|
bottles-cli add -b "${SHELL_NAME}" -n "${name}" -p "${exe}" "${@:3}" 2>/dev/null
|
|
}
|
|
|
|
# Set bottle env var.
|
|
# Usage: bte <NAME=VALUE>
|
|
function bte() {
|
|
local env="${1}"
|
|
if [[ ${env} == "" ]]; then
|
|
help bte
|
|
return 2
|
|
fi
|
|
|
|
bottles-cli edit -b "${SHELL_NAME}" --env-var "${@}" 2>/dev/null
|
|
}
|
|
|
|
# Play bottle.
|
|
# Usage: btp <BOTTLE>
|
|
function btp() {
|
|
local bottle="${1##*/}"
|
|
if [[ ${bottle} == "" ]]; then
|
|
help btp
|
|
return 2
|
|
fi
|
|
|
|
local program=$(bottles-cli programs -b "${bottle}" 2>/dev/null | sed -n -e "s/^- //; 2p")
|
|
bottles-cli run -b "${bottle}" -p "${program}"
|
|
}
|
|
|
|
function _comp_bottles_list() {
|
|
_autocomplete $(bottles-cli list bottles 2>/dev/null | sed -e "1d; s/^- //")
|
|
}
|
|
|
|
function _comp_programs_list() {
|
|
local IFS=$'\n'
|
|
_autocomplete $(bottles-cli programs -b "${SHELL_NAME}" 2>/dev/null | sed -e "1d; s/^- //")
|
|
}
|
|
|
|
complete -F _comp_bottles_list bt btp
|
|
complete -F _comp_programs_list btr
|