wip3
This commit is contained in:
46
install/_example
Normal file
46
install/_example
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Example script
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing example"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sleep 3
|
||||
echo
|
||||
echo "Finish! example v1.2.3"
|
||||
echo
|
||||
}
|
||||
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading example"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sleep 3
|
||||
echo
|
||||
echo "Finish! example v1.2.3"
|
||||
echo
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing example"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sleep 3
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
46
install/anytype
Executable file
46
install/anytype
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Manage anytype (deb)
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
installDir="$HOME/install/anytype"
|
||||
|
||||
install() {
|
||||
release="$(curl -s 'https://api.github.com/repos/anyproto/anytype-ts/releases/latest')"
|
||||
tag="$(echo "$release" | jq -r '.tag_name')"
|
||||
asset="$(echo "$release" | jq -r '.assets.[] | select(.name | test("amd64.deb$"))')"
|
||||
url="$(echo "$asset" | jq -r '.browser_download_url')"
|
||||
echo -e "$tag $url"
|
||||
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing anytype $tag"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
mkdir -p "$installDir"
|
||||
filepath="$installDir/anytype_${tag}_amd46.deb"
|
||||
wget "$url" -O "$filepath"
|
||||
sudo dpkg -i "$filepath"
|
||||
|
||||
echo
|
||||
echo "Finish! $tag"
|
||||
echo
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing anytype"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt purge -y anytype*
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
@@ -1,11 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install apache2 (latest)
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
##makedesc: Manage apache2 (apt)
|
||||
|
||||
title
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing apache2"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt install -y apache2
|
||||
sudo systemctl restart apache2
|
||||
echo
|
||||
echo "Finish! $(apache2 -v)"
|
||||
echo
|
||||
}
|
||||
|
||||
apt_install apache2
|
||||
sudo systemctl restart apache2
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading apache2"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt upgrade -y apache2 apache2-data apache2-utils
|
||||
sudo systemctl restart apache2
|
||||
echo
|
||||
echo "Finish! $(apache2 -v)"
|
||||
echo
|
||||
}
|
||||
|
||||
success "apache2 installed!"
|
||||
apache2 -v
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing apache2"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt purge -y apache2*
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install software from apt
|
||||
##makedesc: Install basic software from apt
|
||||
|
||||
sudo apt update && \
|
||||
sudo apt upgrade -y --autoremove && \
|
||||
@@ -34,17 +34,17 @@ sudo apt update && \
|
||||
p7zip-full \
|
||||
easyeffects \
|
||||
software-properties-common \
|
||||
terminator \
|
||||
ubuntu-restricted-extras \
|
||||
unzip \
|
||||
vlc \
|
||||
ffmpeg \
|
||||
xclip \
|
||||
inotify-tools \
|
||||
notify-osd \
|
||||
fonts-open-sans \
|
||||
libnotify-bin \
|
||||
tree \
|
||||
earlyoom
|
||||
# terminator
|
||||
# xclip
|
||||
# sqlitebrowser
|
||||
# etckeeper
|
||||
|
||||
@@ -1,13 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install Canon Pixma MG2500 + ppa
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
##makedesc: Canon Pixma MG2500 + ppa
|
||||
|
||||
title
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing Canon Pixma MG2500 + ppa"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz
|
||||
sudo apt install -y cnijfilter-mg2500series scangearmp-mg2500series
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo "Drivers for Canon Pixma MG2500 installed!"
|
||||
echo "Now you must reboot PC and connect your printer."
|
||||
echo
|
||||
}
|
||||
|
||||
apt_ppa_add ppa:thierry-f/fork-michael-gruz
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading Canon Pixma MG2500 + ppa"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt upgrade -y cnijfilter-mg2500series scangearmp-mg2500series
|
||||
echo
|
||||
echo "Finish! Canon Pixma MG2500 + ppa"
|
||||
echo
|
||||
}
|
||||
|
||||
apt_install cnijfilter-mg2500series
|
||||
apt_install scangearmp-mg2500series
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing Canon Pixma MG2500 + ppa"
|
||||
echo "==============================================="
|
||||
echo
|
||||
# sudo apt purge -y cnijfilter-mg2500series scangearmp-mg2500series
|
||||
sudp dpkg -r cnijfilter-mg2500series
|
||||
sudp dpkg -r cnijfilter-common
|
||||
sudp dpkg -r scangearmp-mg2500series
|
||||
sudp dpkg -r scangearmp-common
|
||||
sudo add-apt-repository -ry ppa:thierry-f/fork-michael-gruz
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
success "Drivers for Canon Pixma MG2500 installed!"
|
||||
info "Now you must reboot PC and connect your printer."
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
@@ -1,17 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install google chrome (latest)
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
##makedesc: Google Chrome (latest)
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
# https://t.me/axenov_blog/251
|
||||
|
||||
title
|
||||
dest="$HOME/install/deb"
|
||||
deb="$dest/google-chrome.deb"
|
||||
url="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
|
||||
|
||||
mkdir -p "$HOME/install/deb"
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing Google Chrome"
|
||||
echo "==============================================="
|
||||
echo
|
||||
mkdir -p "$dest"
|
||||
wget "$url" -O "$deb"
|
||||
sudo dpkg -i "$deb"
|
||||
echo
|
||||
echo "Finish! $(google-chrome --version)"
|
||||
echo
|
||||
}
|
||||
|
||||
download "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" \
|
||||
"$HOME/install/deb/google-chrome.deb"
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading Google Chrome"
|
||||
echo "==============================================="
|
||||
echo
|
||||
mkdir -p "$dest"
|
||||
wget "$url" -O "$deb"
|
||||
sudo dpkg -i "$deb"
|
||||
echo
|
||||
echo "Finish! $(google-chrome --version)"
|
||||
echo
|
||||
}
|
||||
|
||||
dpkg_install "$HOME/install/deb/google-chrome.deb"
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing Google Chrome"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo dpkg -r google-chrome
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
success "Google Chrome installed!"
|
||||
google-chrome --version
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
@@ -1,6 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: ClamAV (WIP)
|
||||
##makedesc: ClamAV
|
||||
|
||||
sudo apt install clamav -y && \
|
||||
echo "DatabaseMirror packages.microsoft.com/clamav" | sudo tee -a /etc/clamav/freshclam.conf && \
|
||||
set -eo pipefail
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing clamav"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
sudo apt install -y clamav
|
||||
echo "DatabaseMirror packages.microsoft.com/clamav" \
|
||||
| sudo tee -a /etc/clamav/freshclam.conf
|
||||
sudo freshclam
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading clamav"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
sudo apt upgrade -y clamav
|
||||
sudo freshclam
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing clamav"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
sudo apt purge -y clamav*
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
@@ -1,39 +1,78 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install docker (latest) + ppa
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
##makedesc: Docker + ppa
|
||||
|
||||
# https://docs.docker.com/engine/install/ubuntu/
|
||||
# https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
|
||||
|
||||
title
|
||||
set -eo pipefail
|
||||
|
||||
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
|
||||
apt_remove $pkg
|
||||
done
|
||||
doRemove() {
|
||||
sudo apt purge -y docker* podman-docker containerd runc
|
||||
}
|
||||
|
||||
require ca-certificates lsb-release
|
||||
source /etc/os-release
|
||||
install_() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing Docker"
|
||||
echo "==============================================="
|
||||
echo
|
||||
doRemove
|
||||
sudo apt install -y ca-certificates lsb-release
|
||||
source /etc/os-release
|
||||
codename="$VERSION_CODENAME"
|
||||
key="/etc/apt/keyrings/docker.asc"
|
||||
arch=$(dpkg --print-architecture)
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o "$key"
|
||||
sudo chmod a+r $key
|
||||
echo "deb [arch=$arch signed-by=$key] https://download.docker.com/linux/ubuntu $codename stable" \
|
||||
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt update
|
||||
sudo apt install -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
sudo usermod -aG docker "$(whoami)"
|
||||
newgrp docker
|
||||
echo
|
||||
echo "Finish! $(docker --version)"
|
||||
echo "Probably, you need to relogin to apply 'docker' group permanently."
|
||||
echo
|
||||
}
|
||||
|
||||
key="/etc/apt/keyrings/docker.asc"
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading Docker"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt upgrade -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
sudo cdownload https://download.docker.com/linux/ubuntu/gpg $key
|
||||
sudo chmod a+r $key
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing Docker"
|
||||
echo "==============================================="
|
||||
echo
|
||||
doRemove
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
echo "deb [arch=$(dpkg_arch) signed-by=$key] https://download.docker.com/linux/ubuntu $VERSION_CODENAME stable" \
|
||||
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
apt_update
|
||||
apt_install \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
|
||||
sudo usermod -aG docker $(whoami)
|
||||
newgrp docker
|
||||
|
||||
success "Docker installed!"
|
||||
docker --version
|
||||
info "Probably, you need to relogin to apply 'docker' group permanently."
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
53
install/frkn
53
install/frkn
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install Wireguard + FRKN (deprecated)
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
|
||||
# https://frkn.org/ru/installation
|
||||
|
||||
title
|
||||
|
||||
mkdir -p "$HOME/install/frkn"
|
||||
cd "$HOME/install/frkn"
|
||||
|
||||
apt_install wireguard jq
|
||||
|
||||
countries=(jp nl tr at ru se)
|
||||
for idx in ${!countries[@]}; do
|
||||
country=${countries[idx]}
|
||||
info "Downloading config for $country ($(expr $idx + 1)/${#countries[@]})"
|
||||
|
||||
json=$(curl -s "https://api.frkn.org/peer?location=$country" | jq)
|
||||
|
||||
iface_address=$(echo $json | jq -r .iface.address)
|
||||
iface_privkey=$(echo $json | jq -r .iface.key)
|
||||
iface_dns=$(echo $json | jq -r .iface.dns)
|
||||
peer_pubkey=$(echo $json | jq -r .peer.pubkey)
|
||||
peer_psk=$(echo $json | jq -r .peer.psk)
|
||||
peer_allowed_ips=$(echo $json | jq -r .peer.allowed_ips)
|
||||
peer_endpoint=$(echo $json | jq -r .peer.endpoint)
|
||||
|
||||
cat << EOF > "frkn-$country.conf"
|
||||
[Interface]
|
||||
Address = $iface_address
|
||||
DNS = $iface_dns
|
||||
PrivateKey = $iface_privkey
|
||||
|
||||
[Peer]
|
||||
PublicKey = $peer_pubkey
|
||||
PresharedKey = $peer_psk
|
||||
AllowedIPs = $peer_allowed_ips
|
||||
Endpoint = $peer_endpoint
|
||||
PersistentKeepalive = 25
|
||||
EOF
|
||||
|
||||
done
|
||||
|
||||
sudo cp frkn-*.conf /etc/wireguard/
|
||||
|
||||
[ $? = 0 ] && {
|
||||
echo
|
||||
success "Wireguard + FRKN installed!"
|
||||
wg --version
|
||||
info "Use 'wg-quick (up|down) frkn-($(implode '|' ${countries[@]}))' to control connections"
|
||||
info "Use 'sudo wg show' to see connection status"
|
||||
}
|
||||
@@ -1,28 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install golang v1.21.0
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
##makedesc: Install golang
|
||||
|
||||
# https://go.dev/dl/
|
||||
# https://golang.org/doc/install
|
||||
# https://www.vultr.com/docs/install-the-latest-version-of-golang-on-ubuntu
|
||||
# https://github.com/udhos/update-golang/blob/master/update-golang.sh
|
||||
|
||||
[ $1 ] && VERSION="$1" || VERSION="1.23.0"
|
||||
title "Installing golang v$VERSION..."
|
||||
set -eo pipefail
|
||||
|
||||
FILE="go$VERSION.linux-amd64.tar.gz"
|
||||
sudo rm -rf /usr/local/go && \
|
||||
download "https://golang.org/dl/$FILE" "/tmp/$FILE" && \
|
||||
sudo tar -xzf "/tmp/$FILE" -C /usr/local && \
|
||||
rm -rf "/tmp/$FILE" && \
|
||||
sudo chown $USER: -R /usr/local/go && \
|
||||
echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile" && \
|
||||
echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile" && \
|
||||
source ~/.profile
|
||||
doRemove() {
|
||||
[ -d "/usr/local/go" ] && sudo rm -rf "/usr/local/go"
|
||||
}
|
||||
|
||||
[ $? = 0 ] && {
|
||||
install() {
|
||||
dlUrl="https://go.dev/dl"
|
||||
json=$(curl -sSL "$dlUrl/?mode=json")
|
||||
version=$(echo "$json" | jq -r '.[0].version')
|
||||
echo
|
||||
success "golang installed!"
|
||||
info "NOTE: now run 'source ~/.profile' to apply new env vars"
|
||||
echo "==============================================="
|
||||
echo "Installing golang v$version"
|
||||
echo "==============================================="
|
||||
echo
|
||||
latestJson=$(echo "$json" | jq -r '.[0].files.[] | select (.kind == "archive" and .os == "linux" and .arch == "amd64")')
|
||||
fileName=$(echo "$latestJson" | jq -r '.filename')
|
||||
fileUrl="$dlUrl/$fileName"
|
||||
downloadPath="$HOME/install"
|
||||
archivePath="$downloadPath/$fileName"
|
||||
doRemove
|
||||
[ -f "$archivePath" ] || wget "$fileUrl" -O "$archivePath"
|
||||
[ -f "$archivePath" ] && sudo tar -xzf "$archivePath" -C /usr/local
|
||||
sudo chown "$USER": -R /usr/local/go
|
||||
echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile"
|
||||
echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile"
|
||||
echo
|
||||
echo "Finish!"
|
||||
go version
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing golang"
|
||||
echo "==============================================="
|
||||
echo
|
||||
doRemove
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install JetBrains Mono fonts
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
|
||||
# https://www.jetbrains.com/lp/mono/#how-to-install
|
||||
|
||||
title
|
||||
|
||||
require unzip
|
||||
|
||||
mkdir -p "$HOME/install/jbmono" "$HOME/.local/share/fonts/"
|
||||
download "https://download.jetbrains.com/fonts/JetBrainsMono-2.304.zip" "$HOME/install/jbmono.zip" && \
|
||||
unzip -oj "$HOME/install/jbmono.zip" "fonts/ttf/*.ttf" -d "$HOME/.local/share/fonts/" && \
|
||||
fc-cache -vf "$HOME/.local/share/fonts/"
|
||||
|
||||
[ $? = 0 ] && {
|
||||
echo
|
||||
success "JetBrains Mono fonts installed!"
|
||||
echo
|
||||
}
|
||||
66
install/nerd-fonts
Executable file
66
install/nerd-fonts
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install nerd-fonts
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
#TODO nokia-sans
|
||||
|
||||
downloadPath="$HOME/install/nerd-fonts"
|
||||
installPath="$HOME/.local/share/fonts/"
|
||||
url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download"
|
||||
|
||||
fonts=(
|
||||
FiraCode
|
||||
FiraMono
|
||||
JetBrainsMono
|
||||
Meslo
|
||||
Noto
|
||||
RobotoMono
|
||||
Ubuntu
|
||||
UbuntuMono
|
||||
UbuntuSans
|
||||
)
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing nerd-fonts"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
[[ -d "$downloadPath" ]] || mkdir -p "$downloadPath"
|
||||
|
||||
for fontname in "${fonts[@]}"; do
|
||||
fontdir="$installPath/Nerd-$fontname"
|
||||
wget "$url/$fontname.tar.xz" -O "$downloadPath/$fontname.tar.xz"
|
||||
[[ -d "$installPath/$fontname" ]] || mkdir -p "$fontdir"
|
||||
tar -xJf "$downloadPath/$fontname.tar.xz" -C "$fontdir"
|
||||
done
|
||||
|
||||
fc-cache -vf "$installPath"
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing nerd-fonts"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
find "$installPath" -type d -name "Nerd-*" -exec rm -rf {} +
|
||||
fc-cache -vf "$installPath"
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
81
install/nvim
81
install/nvim
@@ -1,33 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install nvim + lazyvim
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
set -eo pipefail
|
||||
|
||||
# https://www.lazyvim.org/installation
|
||||
# https://www.devas.life/effective-neovim-setup-for-web-development-towards-2024/
|
||||
|
||||
title
|
||||
# TODO https://github.com/rockerBOO/awesome-neovim
|
||||
# TODO https://docs.astronvim.com
|
||||
|
||||
require git
|
||||
url="https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz"
|
||||
downloadPath="$HOME/install"
|
||||
downloadTarGz="$downloadPath/nvim.tar.gz"
|
||||
installPath="/opt/nvim"
|
||||
cfgPath="$HOME/.config/nvim"
|
||||
nvimDataPaths=(
|
||||
"$cfgPath"
|
||||
"$HOME"/.local/share/nvim
|
||||
"$HOME"/.local/state/nvim
|
||||
"$HOME"/.cache/nvim
|
||||
)
|
||||
|
||||
nvimUrl="https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz"
|
||||
installPath="$HOME/install"
|
||||
installTar="$installPath/nvim.tar.gz"
|
||||
backup() {
|
||||
echo "Backup configuration files..."
|
||||
t=$(date +'%s')
|
||||
for path in "${nvimDataPaths[@]}"; do
|
||||
[[ -d "$path" ]] && cp -v "$path" "$path-$t.bak"
|
||||
done
|
||||
echo "Done"
|
||||
}
|
||||
|
||||
[ -d "$HOME/.config/nvim" ] && mv "$HOME"/.config/nvim{,.bak}
|
||||
[ -d "$HOME/.local/share/nvim" ] && mv "$HOME"/.local/share/nvim{,.bak}
|
||||
[ -d "$HOME/.local/state/nvim" ] && mv "$HOME"/.local/state/nvim{,.bak}
|
||||
[ -d "$HOME/.cache/nvim" ] && mv "$HOME"/.cache/nvim{,.bak}
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing neovim"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
download "$nvimUrl" "$installTar"
|
||||
unpack_targz "$installTar" "$installPath"
|
||||
backup
|
||||
wget "$url" -O "$downloadTarGz"
|
||||
tar -xzf "$downloadTarGz" -C "$downloadPath"
|
||||
|
||||
sudo rm -vrf /opt/nvim
|
||||
sudo mv -v "$installPath/nvim-linux-x86_64" /opt/nvim
|
||||
sudo rm -rf "$installPath"
|
||||
sudo mv "$downloadPath/nvim-linux-x86_64" "$installPath"
|
||||
|
||||
git.clone_quick https://github.com/LazyVim/starter "$HOME/.config/nvim"
|
||||
rm -rf "$HOME/.config/nvim/.git"
|
||||
git clone --depth=1 --single-branch https://github.com/LazyVim/starter "$cfgPath"
|
||||
rm -rf "$cfgPath/.git"
|
||||
|
||||
sudo update-desktop-database && \
|
||||
sudo update-desktop-database
|
||||
xdg-desktop-menu forceupdate
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
nvim -v
|
||||
echo
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing nerd-fonts"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
find "$downloadPath" -type d -name "Nerd-*" -exec rm -rf {} +
|
||||
fc-cache -vf "$downloadPath"
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
b|backup) backup ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
|
||||
# export PATH="$PATH:/opt/nvim-linux-x86_64/bin"
|
||||
|
||||
115
scripts/frkn.sh
115
scripts/frkn.sh
@@ -1,115 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function disconnect() {
|
||||
echo "Disconnecting: $1"
|
||||
sudo wg-quick down "$1"
|
||||
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
||||
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
|
||||
echo
|
||||
}
|
||||
|
||||
function connect() {
|
||||
echo "Connecting: frkn-$1"
|
||||
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
|
||||
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
sudo wg-quick up "frkn-$1"
|
||||
echo
|
||||
}
|
||||
|
||||
function in_array() {
|
||||
local find=$1
|
||||
shift
|
||||
for e in "$@"; do
|
||||
[[ "$e" == "$find" ]] && return 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function update_wg() {
|
||||
sudo apt install -y wireguard jq && wg --version
|
||||
}
|
||||
|
||||
function update_frkn() {
|
||||
local countries=(uk ru nl nl2 ch)
|
||||
for idx in ${!countries[@]}; do
|
||||
country=${countries[idx]}
|
||||
echo "Downloading config for $country ($(expr $idx + 1)/${#countries[@]})"
|
||||
|
||||
json=$(curl -s "https://api.frkn.org/peer?location=$country" | jq)
|
||||
|
||||
iface_address=$(echo $json | jq -r .iface.address)
|
||||
iface_privkey=$(echo $json | jq -r .iface.key)
|
||||
iface_dns=$(echo $json | jq -r .iface.dns)
|
||||
peer_pubkey=$(echo $json | jq -r .peer.pubkey)
|
||||
peer_psk=$(echo $json | jq -r .peer.psk)
|
||||
peer_allowed_ips=$(echo $json | jq -r .peer.allowed_ips)
|
||||
peer_endpoint=$(echo $json | jq -r .peer.endpoint)
|
||||
|
||||
cat << EOF > "./frkn-$country.conf"
|
||||
[Interface]
|
||||
Address = $iface_address
|
||||
DNS = $iface_dns
|
||||
PrivateKey = $iface_privkey
|
||||
|
||||
[Peer]
|
||||
PublicKey = $peer_pubkey
|
||||
PresharedKey = $peer_psk
|
||||
AllowedIPs = $peer_allowed_ips
|
||||
Endpoint = $peer_endpoint
|
||||
PersistentKeepalive = 25
|
||||
EOF
|
||||
done
|
||||
sudo mv -f ./frkn-*.conf /etc/wireguard/
|
||||
}
|
||||
|
||||
command="$1"
|
||||
countries=()
|
||||
current=$(sudo wg show | head -n 1 | awk '{print $2}')
|
||||
|
||||
for file in /etc/wireguard/*.conf; do
|
||||
filename=${file/\/etc\/wireguard\/frkn-}
|
||||
code=${filename/.conf/}
|
||||
countries+=($code)
|
||||
done
|
||||
|
||||
correct=-1
|
||||
if [ -z "$command" ] ; then
|
||||
while [ $correct -lt 0 ]; do
|
||||
read -rp "Entry on of country code (${countries[*]}): " command
|
||||
if in_array "$command" ${countries[@]}; then
|
||||
correct=1
|
||||
else
|
||||
echo "Неверный код страны!"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
case "$command" in
|
||||
"update" )
|
||||
if update_wg && update_frkn; then
|
||||
echo "Wireguard and FRKN updated"
|
||||
else
|
||||
echo "Something went wrong"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
"down" )
|
||||
if [ -n "$current" ]; then
|
||||
disconnect "$current"
|
||||
fi
|
||||
;;
|
||||
|
||||
"show" )
|
||||
sudo wg show
|
||||
;;
|
||||
|
||||
* )
|
||||
if [ -n "$current" ]; then
|
||||
disconnect "$current"
|
||||
fi
|
||||
connect "$command"
|
||||
;;
|
||||
esac
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Uninstall apache2
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
|
||||
title
|
||||
|
||||
apt_remove apache2
|
||||
|
||||
success "apache2 removed!"
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Uninstall Canon Pixma MG2500 + ppa
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
|
||||
title
|
||||
|
||||
apt_ppa_remove ppa:thierry-f/fork-michael-gruz
|
||||
|
||||
dpkg_remove cnijfilter-mg2500series
|
||||
dpkg_remove cnijfilter-common
|
||||
dpkg_remove scangearmp-mg2500series
|
||||
dpkg_remove scangearmp-common
|
||||
|
||||
success "Drivers for Canon Pixma MG2500 removed!"
|
||||
|
||||
Reference in New Issue
Block a user