You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
prov/prov.sh

90 lines
1.4 KiB

#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
function main() {
RELEASE="$(lsb_release -cs)"
apt update
prov-$RELEASE
}
function install-jq {
if which jq >/dev/null 2>&1 ; then
return
fi
apt install -y jq
}
function install-curl {
if which curl >/dev/null 2>&1 ; then
return
fi
apt install -y curl
}
function detect-mirror-country() {
install-jq
install-curl
curl ipinfo.io | jq -r .country
}
function set-mirror-country() {
MURM="main universe restricted multiverse"
COUNTRY="$(detect-mirror-country)"
URL="http://$COUNTRY.archive.ubuntu.com/ubuntu"
cat > /etc/apt/sources.list.new <<EOF
deb $URL $(lsb_release -cs) $MURM
deb $URL $(lsb_release -cs)-updates $MURM
deb $URL $(lsb_release -cs)-backports $MURM
deb $URL $(lsb_release -cs)-security $MURM
EOF
mv /etc/apt/sources.list.new /etc/apt/sources.list
}
function prov-focal() {
set-mirror-country
PKGS="
bridge-utils
byobu
git
golang-go
magic-wormhole
make
net-tools
nmap
ntp
pbzip2
pv
traceroute
unzip
vim
vlan
wireguard-tools
zip
zsh
zstd
"
apt update && \
apt upgrade -y && \
apt install -y $PKGS && \
apt autoremove -y
install-age
}
function install-age () {
if which age >/dev/null 2>&1 ; then
return
fi
cd /tmp
git clone https://filippo.io/age && cd age
go build -o . filippo.io/age/cmd/...
mv ./age /usr/local/bin
cd -
rm -rf /tmp/age
}
main