Compare commits

...

25 Commits

Author SHA1 Message Date
a52ce34748
makefile 2024-07-31 23:40:56 +08:00
024b3311e0
uninstall scripts 2024-07-31 23:40:43 +08:00
22d12fd902
tools/ignore-veth.sh 2024-07-31 23:37:57 +08:00
def4f6761a
dotfiles misc 2024-07-31 23:37:18 +08:00
ed10ab05d4
misc 2024-07-31 23:36:46 +08:00
b6817506e0
telegram misc 2024-07-31 23:36:15 +08:00
479ac2064f
postman rework 2024-07-31 23:36:02 +08:00
4014f83402
php tools misc 2024-07-31 23:35:38 +08:00
bf970f58cd
pgsql rework 2024-07-31 23:32:46 +08:00
7159850e83
papirus rework 2024-07-31 23:31:16 +08:00
3ef8692684
openvpn rework 2024-07-31 23:29:58 +08:00
efa60f5231
kde-backports misc 2024-07-31 23:29:37 +08:00
ee8cbd0fe4
jbmono misc 2024-07-31 23:27:06 +08:00
3c87f837eb
grubc rename 2024-07-31 23:26:44 +08:00
6d7719d568
golang rework 2024-07-31 23:26:27 +08:00
e9638e845c
git rework 2024-07-31 23:26:12 +08:00
b2cf7c154e
flameshot 2024-07-31 23:25:51 +08:00
b988524c2d
droidcam rework 2024-07-31 23:25:11 +08:00
a73a442f07
docker rework 2024-07-31 23:24:10 +08:00
f9f8f5b2dc
composer reworked 2024-07-31 23:23:55 +08:00
79db21f336
chrome misc 2024-07-31 23:23:33 +08:00
bb78d67565
canon-mg2500 misc 2024-07-31 23:23:19 +08:00
8b9aecc754
apt misc 2024-07-31 23:18:15 +08:00
f3f6e8fd31
apache misc 2024-07-31 23:15:48 +08:00
5bf67b1c8e
helpers misc 2024-07-31 23:14:53 +08:00
38 changed files with 460 additions and 405 deletions

View File

@ -1,15 +1,15 @@
# Autogenerated at 12.04.2023 19:04 using ./gen-makefile # Autogenerated at 31.07.2024 23:40 using ./gen-makefile
.DEFAULT_GOAL := help .DEFAULT_GOAL := help
#=============================================== #===============================================
# Scripts listed in ./install # Scripts listed in ./install
#=============================================== #===============================================
##apache: Install apache2 (latest) ##apache2: Install apache2 (latest)
apache: apache2:
@./install/apache @./install/apache2
##apt: Install bunch of software from apt ##apt: Install software from apt
apt: apt:
@./install/apt @./install/apt
@ -33,7 +33,7 @@ docker:
dots: dots:
@./install/dots @./install/dots
##droidcam: Install droidcam v1.8.2 ##droidcam: Install droidcam v1.9.0
droidcam: droidcam:
@./install/droidcam @./install/droidcam
@ -41,21 +41,21 @@ droidcam:
droidcam-obs: droidcam-obs:
@./install/droidcam-obs @./install/droidcam-obs
##flameshot-build: [TODO] Build flameshot from src (latest) ##flameshot: Install flameshot (latest)
flameshot-build: flameshot:
@./install/flameshot-build @./install/flameshot
##git: Install git (latest) ##git: Install git (latest)
git: git:
@./install/git @./install/git
##golang: Install golang v1.18.3 ##golang: Install golang v1.21.0
golang: golang:
@./install/golang @./install/golang
##grubc: Install grub-customizer (latest) + ppa ##grub-customizer: Install grub-customizer (latest + ppa)
grubc: grub-customizer:
@./install/grubc @./install/grub-customizer
##jbmono: Install JetBrains Mono fonts ##jbmono: Install JetBrains Mono fonts
jbmono: jbmono:
@ -109,7 +109,7 @@ omz-clean:
omz-fancy: omz-fancy:
@./install/omz-fancy @./install/omz-fancy
##openvpn: Install openvpn v2.5.8 (src) ##openvpn: Install openvpn v2.6.3 (src)
openvpn: openvpn:
@./install/openvpn @./install/openvpn
@ -242,10 +242,18 @@ phpstack: php phptools
# Scripts listed in ./uninstall # Scripts listed in ./uninstall
#=============================================== #===============================================
##/apache2: Uninstall apache2
/apache2:
@./uninstall/apache2
##/docker: Uninstall docker + ppa ##/docker: Uninstall docker + ppa
/docker: /docker:
@./uninstall/docker @./uninstall/docker
##/grub-customizer: Uninstall grub-customizer with ppa
/grub-customizer:
@./uninstall/grub-customizer
##/lite-xl: Uninstall lite-xl ##/lite-xl: Uninstall lite-xl
/lite-xl: /lite-xl:
@./uninstall/lite-xl @./uninstall/lite-xl

82
helpers
View File

@ -4,6 +4,40 @@ installed() {
command -v "$1" >/dev/null 2>&1 command -v "$1" >/dev/null 2>&1
} }
installed2() {
dpkg --list | grep -qw "ii $1"
}
apt_install() {
sudo apt install -y --autoremove "$*"
}
require() {
sw=()
for package in "$@"; do
if ! installed "$package" && ! installed2 "$package"; then
sw+=("$package")
fi
done
if [ ${#sw[@]} -gt 0 ]; then
info "This packages will be installed in your system:\n${sw[*]}"
apt_install "${sw[*]}"
[ $? -gt 0 ] && die "installation cancelled" 201
fi
}
require2() {
sw=()
for package in "$@"; do
if ! installed "$package" && ! installed2 "$package"; then
sw+=("$package")
fi
done
if [ ${#sw[@]} -gt 0 ]; then
die "This packages must be installed in your system:\n${sw[*]}" 200
fi
}
title() { title() {
[ "$1" ] && title="$1" || title="$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${BASH_SOURCE[1]})" [ "$1" ] && title="$1" || title="$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${BASH_SOURCE[1]})"
info info
@ -13,23 +47,30 @@ title() {
info info
} }
require() { unpak_targz() {
if ! installed "$1"; then require tar
if [ "$2" ]; then tar -xzf "$1" -C "$2"
die "'$1' must to be installed in your system" 200 }
else
info "Installing '$1' because it is required to continue" symlink() {
sudo apt install "$1" ln -sf "$1" "$2"
[ $? -gt 0 ] && die "installation cancelled" 201
fi
fi
} }
download() { download() {
require wget 1 require wget
wget "$1" -O "$2" wget "$1" -O "$2"
} }
clone() {
require git
git clone $*
}
clone_quick() {
require git
git clone $* --depth=1 --single-branch
}
abspath() { abspath() {
echo $(realpath -q "${1/#\~/$HOME}") echo $(realpath -q "${1/#\~/$HOME}")
} }
@ -126,13 +167,12 @@ print() {
debug() { debug() {
if [ "$2" ]; then if [ "$2" ]; then
print "${DIM}${BOLD}${RESET}${DIM} ${FUNCNAME[1]:-?}():${BASH_LINENO:-?}\t$1 " print "${DIM}${BOLD}${RESET}${DIM}${FUNCNAME[1]:-?}():${BASH_LINENO:-?}\t$1 "
else else
print "${DIM}${BOLD}${RESET}${DIM}$1 " print "${DIM}${BOLD}${RESET}${DIM}$1 "
fi fi
} }
verbose() { verbose() {
print "${BOLD}${IVRB}${RESET}${FYELLOW} $1 " print "${BOLD}${IVRB}${RESET}${FYELLOW} $1 "
} }
@ -155,7 +195,6 @@ warn() {
error() { error() {
print "${BOLD}${BLRED}${FWHITE}${IERROR} Error: ${BRESET}${FLRED} $1 " >&2 print "${BOLD}${BLRED}${FWHITE}${IERROR} Error: ${BRESET}${FLRED} $1 " >&2
# print_stacktrace
} }
fatal() { fatal() {
@ -164,19 +203,8 @@ fatal() {
} }
die() { die() {
error "$1" error "${1:-halted}"
[ "$2" ] && exit $2 || exit 100 exit ${2:-100}
}
die_fatal() {
fatal "$1"
[ "$2" ] && exit $2 || exit 100
}
die_help() {
error "$1"
[ "$2" ] && is_function "$2".help && $2.help
[ "$3" ] && exit $3 || exit 100
} }
print_stacktrace() { print_stacktrace() {

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
##makedesc: Install apache2 (latest) ##makedesc: Install apache2 (latest)
[ -f `dirname $0`/../helpers ] && source `dirname $0`/../helpers || exit 255 source `dirname $0`/../helpers || exit 255
title title

View File

@ -1,62 +1,59 @@
#!/bin/bash #!/bin/bash
##makedesc: Install bunch of software from apt ##makedesc: Install software from apt
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing software from apt..."
echo "==============================================="
echo
sudo apt update && \ sudo apt update && \
sudo apt upgrade -y --autoremove sudo apt upgrade -y --autoremove && \
sudo apt install -y \
sudo apt install -y \ alien \
alien \ apt-transport-https \
apt-transport-https \ build-essential \
build-essential \ ca-certificates \
ca-certificates \ cmake \
cmake \ curl \
curl \ dconf-editor \
dconf-editor \ default-jdk \
default-jdk \ dialog \
dialog \ gettext \
gettext \ gnupg \
gnupg \ gparted \
gparted \ hardinfo \
hardinfo \ htop \
htop \ libaio1 \
libaio1 \ libcurl4-gnutls-dev \
libcurl4-gnutls-dev \ libexpat1-dev \
libexpat1-dev \ libghc-zlib-dev \
libghc-zlib-dev \ libssl-dev \
libssl-dev \ lsb-release \
lsb-release \ lsp-plugins \
lsp-plugins \ make \
make \ mc \
mc \ meld \
meld \ nano \
nano \ neofetch \
neofetch \ net-tools \
net-tools \ nmap \
nmap \ p7zip-full \
p7zip-full \ pulseeffects \
pulseeffects \ software-properties-common \
software-properties-common \ terminator \
terminator \ ubuntu-restricted-extras \
ubuntu-restricted-extras \ unzip \
unzip \ vlc \
vlc \ ffmpeg \
ffmpeg \ xclip \
xclip \ inotify-tools \
inotify-tools \ notify-osd \
notify-osd \ fonts-open-sans \
fonts-open-sans \ libnotify-bin \
libnotify-bin tree \
# sqlitebrowser earlyoom
# earlyoom \ # sqlitebrowser
# etckeeper \ # etckeeper \
# geoclue-2.0 \ # geoclue-2.0 \
# gnome-software \ # gnome-software \
# minder \ # minder \
# redshift \ # redshift \
# redshift-gtk # redshift-gtk

View File

@ -1,11 +1,17 @@
#!/bin/bash #!/bin/bash
##makedesc: Install Canon Pixma MG2500 + ppa ##makedesc: Install Canon Pixma MG2500 + ppa
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing Canon Pixma MG2500 + ppa..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz sudo add-apt-repository -y ppa:thierry-f/fork-michael-gruz && \
sudo apt install -y cnijfilter-mg2500series scangearmp-mg2500series sudo apt install -y \
cnijfilter-mg2500series \
scangearmp-mg2500series
[ $? = 0 ] && {
echo
success "Canon Pixma MG2500 installed!"
info "Now you must add a new printer in your system."
echo
}

View File

@ -1,14 +1,20 @@
#!/bin/bash #!/bin/bash
##makedesc: Install google chrome (latest) ##makedesc: Install google chrome (latest)
source `dirname $0`/../helpers || exit 255
echo
echo "==============================================="
echo "Installing google chrome (latest)..."
echo "==============================================="
echo
# https://t.me/axenov_blog/251 # https://t.me/axenov_blog/251
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb && \ title
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb && \
rm /tmp/google-chrome-stable_current_amd64.deb mkdir -p "$HOME/install"
download "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" \
"$HOME/install/google-chrome.deb" && \
sudo dpkg -i "$HOME/install/google-chrome.deb"
[ $? = 0 ] && {
echo
success "Google Chrome installed!"
google-chrome --version
echo
}

View File

@ -1,56 +1,41 @@
#!/bin/bash #!/bin/bash
##makedesc: Install composer (latest) ##makedesc: Install composer (latest)
echo source `dirname $0`/../helpers || exit 255
echo "==============================================="
echo "Installing composer (latest)..."
echo "==============================================="
echo
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md # https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
installed() { title
command -v "$1" >/dev/null 2>&1
}
! installed "php" && echo "WARNING: You need php to be installed" require php
if installed "composer"; then if installed "composer"; then
echo "WARNING: Removing current composer to install its actual version" warn "WARNING: Removing current composer to install its actual version"
sudo apt remove -y --autoremove composer sudo apt remove -y --autoremove composer
sudo rm -f $HOME/.local/bin/composer sudo rm -f \
sudo rm -f /bin/composer "$HOME/.local/bin/composer" \
sudo rm -f /usr/bin/composer /bin/composer \
sudo rm -f /usr/local/bin/composer /usr/bin/composer \
sudo rm -f /usr/src/composer /usr/local/bin/composer \
rm $HOME/.local/bin/composer /usr/src/composer \
"$HOME/.local/bin/composer"
fi fi
mkdir -p $HOME/install $HOME/.local/bin mkdir -p "$HOME/install" "$HOME/.local/bin"
cd $HOME/install download "https://getcomposer.org/installer" "$HOME/install/composer-setup.php" && \
php "$HOME/install/composer-setup.php" --install-dir="$HOME/.local/bin/composer"
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" [ $? = 0 ] && {
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" COMPOSER_GLOBAL_HOME="$($HOME/.local/bin/composer config -g home)"
wget https://getcomposer.org/installer -O composer-setup.php NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then $NEWPATH
>&2 echo 'ERROR: Invalid installer checksum' echo "$NEWPATH" >> "$HOME/.profile"
rm composer-setup.php }
exit 1
fi
php composer-setup.php --quiet
mv -f $HOME/install/composer.phar $HOME/.local/bin/composer
cd - >/dev/null
COMPOSER_GLOBAL_HOME="$($HOME/.local/bin/composer config -g home)" echo
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\"" success "composer installed!"
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || { composer --version
$NEWPATH echo
echo "$NEWPATH" >> "${HOME}/.profile"
} }
source "${HOME}/.profile"
echo
echo "Finish!"
composer --version
echo
source "$HOME/.profile"

View File

@ -1,43 +1,35 @@
#!/bin/bash #!/bin/bash
##makedesc: Install docker (latest) + docker-compose (latest) + ppa ##makedesc: Install docker (latest) + docker-compose (latest) + ppa
source `dirname $0`/../helpers || exit 255
echo
echo "==============================================="
echo "Installing docker (latest)..."
echo "==============================================="
echo
# https://docs.docker.com/engine/install/ubuntu/ # https://docs.docker.com/engine/install/ubuntu/
sudo apt install -y \ title
ca-certificates \
curl \ require ca-certificates
gnupg \ require curl
lsb-release require gnupg
require lsb-release
sudo mkdir -p /etc/apt/keyrings sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
sudo chmod a+r /etc/apt/keyrings/docker.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt update && \
sudo apt install -y --autoremove \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin && \
sudo usermod -aG docker $(whoami)
sudo chmod a+r /etc/apt/keyrings/docker.gpg [ $? = 0 ] && {
echo
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ success "Docker installed!"
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null info "Probably, you need to relogin to apply 'docker' group."
info "Your ones currently are: $(groups)"
sudo apt update docker --version
sudo apt install -y --autoremove \ echo
docker-ce \ }
docker-ce-cli \
containerd.io \
docker-compose-plugin
sudo usermod -aG docker $(whoami)
sudo cp ../dotfiles/etc/docker/daemon.json /etc/docker/daemon.json
echo
echo "Finish!"
docker --version
echo "Probably, you need to relogin to apply 'docker' group."
echo "Your ones currently are: $(groups)"
echo

View File

@ -1,25 +1,22 @@
#!/bin/bash #!/bin/bash
##makedesc: Install dotfiles ##makedesc: Install dotfiles
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing dotfiles..."
echo "==============================================="
echo
install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
dotfiles_src_dir="`dirname $install_dir`/dotfiles" dotfiles_src_dir="`dirname $install_dir`/dotfiles"
postfix=".bak-`date '+%Y%m%d%H%M'`" postfix=".bak-`date '+%Y%m%d%H%M'`"
install() { install_dotfile() {
echo "mv "$HOME/$1" "$HOME/$1$postfix"" mv "$HOME/$1" "$HOME/$1$postfix"
echo "cp "$dotfiles_src_dir/$1" "$HOME/$1"" cp "$dotfiles_src_dir/$1" "$HOME/$1"
echo "- $1" success "- $1"
} }
install .bash_aliases install_dotfile ".bash_aliases" && \
install .profile install_dotfile ".profile" && \
install .bashrc install_dotfile ".bashrc" && \
install .gitconfig install_dotfile ".gitconfig" && \
install .gitignore install_dotfile ".gitignore" && \
install .git_aliases install_dotfile ".git_aliases"

View File

@ -1,21 +1,22 @@
#!/bin/bash #!/bin/bash
##makedesc: Install droidcam v1.8.2 ##makedesc: Install droidcam v1.9.0
source `dirname $0`/../helpers || exit 255
# https://www.dev47apps.com/droidcam/linux/ # https://www.dev47apps.com/droidcam/linux/
echo title
echo "==============================================="
echo "Installing droidcam v1.8.2..."
echo "==============================================="
echo
mkdir -p ~/install/droidcam mkdir -p "$HOME/install/droidcam"
wget -O /tmp/droidcam.zip https://files.dev47apps.net/linux/droidcam_1.8.2.zip
unzip -oq /tmp/droidcam.zip -d ~/install/droidcam
rm -rf /tmp/droidcam.zip
cd ~/install/droidcam && sudo ./install-client
echo download "https://files.dev47apps.net/linux/droidcam_1.9.0.zip" "$HOME/install/droidcam.zip" && \
echo "Finish!" unzip -oq "$HOME/install/droidcam.zip" -d "$HOME/install/droidcam" && \
echo "Don't forget to install android app: https://play.google.com/store/apps/developer?id=Dev47Apps" cd "$HOME/install/droidcam" && \
echo sudo ./install-client
[ $? = 0 ] && {
echo
success "droidcam installed!"
info "Don't forget to install the android app:"
info "https://play.google.com/store/apps/developer?id=Dev47Apps"
echo
}

View File

@ -15,11 +15,11 @@ echo
# command -v "obs" >/dev/null 2>&1 || echo 'You need to install obs first!' # command -v "obs" >/dev/null 2>&1 || echo 'You need to install obs first!'
command -v "obs-studio" >/dev/null 2>&1 || echo 'You need to install obs-studio first!' command -v "obs-studio" >/dev/null 2>&1 || echo 'You need to install obs-studio first!'
mkdir -p ~/install/droidcam-obs mkdir -p $HOMEinstall/droidcam-obs
wget -O /tmp/droidcam-obs.zip https://files.dev47apps.net/obs/droidcam_obs_1.5.1_linux.zip wget -O /tmp/droidcam-obs.zip https://files.dev47apps.net/obs/droidcam_obs_1.5.1_linux.zip
unzip -oq /tmp/droidcam-obs.zip -d ~/install/droidcam-obs unzip -oq /tmp/droidcam-obs.zip -d $HOMEinstall/droidcam-obs
rm -rf /tmp/droidcam-obs.zip rm -rf /tmp/droidcam-obs.zip
cd ~/install/droidcam-obs && ./install.sh cd $HOMEinstall/droidcam-obs && ./install.sh
sudo modprobe v4l2loopback video_nr=2 card_label="OBS Virtual Camera" sudo modprobe v4l2loopback video_nr=2 card_label="OBS Virtual Camera"
echo echo

15
install/flameshot Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
##makedesc: Install flameshot (latest)
source `dirname $0`/../helpers || exit 255
title
sudo apt install -y --autoremove flameshot && \
sudo systemctl restart flameshot
[ $? = 0 ] && {
echo
success "flameshot installed!"
flameshot -v
echo
}

View File

@ -1,8 +0,0 @@
#!/bin/bash
##makedesc: [TODO] Build flameshot from src (latest)
echo
echo "==============================================="
echo "Installing flameshot (latest)..."
echo "==============================================="
echo

View File

@ -1,43 +1,38 @@
#!/bin/bash #!/bin/bash
##makedesc: Install git (latest) ##makedesc: Install git (latest)
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing git (latest)..."
echo "==============================================="
echo
installed() { require make
command -v "$1" >/dev/null 2>&1
}
! installed make && sudo apt install -y make
if installed git; then if installed git; then
if [ -d "${HOME}/install/git" ]; then if [ -d "$HOME/install/git" ]; then
cd "${HOME}/install/git" && \ cd "$HOME/install/git" && \
git pull git pull
else else
git clone https://github.com/git/git.git --depth=1 "${HOME}/install/git" && \ clone "https://github.com/git/git.git" "$HOME/install/git" --depth=1 --single-branch && \
cd "${HOME}/install/git" cd "$HOME/install/git"
fi fi
sudo make prefix=/usr/local all && \ sudo make prefix=/usr/local all && \
sudo make prefix=/usr/local install sudo make prefix=/usr/local install
else else
! installed wget && sudo apt install -y wget require wget
[ -d "${HOME}/install/git" ] || mkdir -p "${HOME}/install/git" mkdir -p "$HOME/install/git"
wget https://github.com/git/git/archive/master.zip -O /tmp/git.zip && \ download "https://github.com/git/git/archive/master.zip" "/tmp/git.zip" && \
unzip -oq /tmp/git.zip -d "${HOME}/install/git" && \ unzip -oq "/tmp/git.zip" -d "$HOME/install/git" && \
rm /tmp/git.zip && \ rm /tmp/git.zip && \
cd "${HOME}/install/git/git-master" && \ cd "$HOME/install/git/git-master" && \
sudo make prefix=/usr/local all && \ sudo make prefix=/usr/local all && \
sudo make prefix=/usr/local install && \ sudo make prefix=/usr/local install && \
cd - && \ cd - && \
rm -rf git && \ rm -rf git && \
git clone https://github.com/git/git.git --depth=1 "${HOME}/install/git" clone "https://github.com/git/git.git" "$HOME/install/git" --depth=1 --single-branch
fi fi
echo [ $? = 0 ] && {
echo "Finish!" echo
git --version success "git installed!"
echo git --version
echo
}

View File

@ -1,30 +1,28 @@
#!/bin/bash #!/bin/bash
##makedesc: Install golang v1.18.3 ##makedesc: Install golang v1.21.0
source `dirname $0`/../helpers || exit 255
# https://go.dev/dl/ # https://go.dev/dl/
# https://golang.org/doc/install # https://golang.org/doc/install
# https://www.vultr.com/docs/install-the-latest-version-of-golang-on-ubuntu # https://www.vultr.com/docs/install-the-latest-version-of-golang-on-ubuntu
[ $1 ] && VERSION="$1" || VERSION="1.21.6"
title "Installing golang v$VERSION..."
[ $1 ] && VERSION="$1" || VERSION="1.18.3"
FILE="go$VERSION.linux-amd64.tar.gz" FILE="go$VERSION.linux-amd64.tar.gz"
echo
echo "==============================================="
echo "Installing golang v$VERSION..."
echo "==============================================="
echo
sudo rm -rf /usr/local/go && \ sudo rm -rf /usr/local/go && \
wget "https://golang.org/dl/$FILE" -O /tmp/$FILE && \ download "https://golang.org/dl/$FILE" "/tmp/$FILE" && \
sudo tar -xzf /tmp/$FILE -C /usr/local && \ sudo tar -xzf "/tmp/$FILE" -C /usr/local && \
rm -rf /tmp/$FILE && \ rm -rf "/tmp/$FILE" && \
sudo chown $USER: -R /usr/local/go && \ sudo chown $USER: -R /usr/local/go && \
echo 'export PATH="$PATH:/usr/local/go/bin\"' >> $HOME/.profile && \ echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile" && \
echo 'export GOPATH="$HOME/.go"' >> $HOME/.profile echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile" && \
source ~/.profile
echo [ $? = 0 ] && {
echo "Finish!" echo
go version success "golang installed!"
echo "NOTE: now run 'source ~/.profile' to apply new env vars" info "NOTE: now run 'source ~/.profile' to apply new env vars"
echo go version
echo
}

15
install/grub-customizer Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
##makedesc: Install grub-customizer (latest + ppa)
source `dirname $0`/../helpers || exit 255
title
sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer && \
sudo apt install -y --autoremove grub-customizer
[ $? = 0 ] && {
echo
success "grub-customizer installed!"
grub-customizer -v
echo
}

View File

@ -1,11 +0,0 @@
#!/bin/bash
##makedesc: Install grub-customizer (latest) + ppa
echo
echo "==============================================="
echo "Installing grub-customizer (latest)..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer
sudo apt install -y --autoremove grub-customizer

View File

@ -1,14 +1,14 @@
#!/bin/bash #!/bin/bash
##makedesc: Install JetBrains Mono fonts ##makedesc: Install JetBrains Mono fonts
[ -f `dirname $0`/../helpers ] && source `dirname $0`/../helpers || exit 255 source `dirname $0`/../helpers || exit 255
# https://www.jetbrains.com/lp/mono/#how-to-install # https://www.jetbrains.com/lp/mono/#how-to-install
title title
require unzip require unzip
mkdir -p "$HOME/install/jbmono" "$HOME/.local/share/fonts/" mkdir -p "$HOME/install/jbmono" "$HOME/.local/share/fonts/"
download "https://download.jetbrains.com/fonts/JetBrainsMono-2.304.zip" "$HOME/install/jbmono.zip" && \ 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/" && \ unzip -oj "$HOME/install/jbmono.zip" "fonts/ttf/*.ttf" -d "$HOME/.local/share/fonts/" && \
fc-cache -vf "$HOME/.local/share/fonts/" fc-cache -vf "$HOME/.local/share/fonts/"

View File

@ -1,14 +1,9 @@
#!/bin/bash #!/bin/bash
##makedesc: Install KDE Backports ##makedesc: Install KDE Backports
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing KDE Backports..."
echo "==============================================="
echo
sudo add-apt-repository -y ppa:kubuntu-ppa/backports sudo add-apt-repository -y ppa:kubuntu-ppa/backports && \
# sudo add-apt-repository -y ppa:kubuntu-ppa/backports-extra sudo apt update && \
sudo apt update sudo apt full-upgrade
# sudo pkcon update
sudo apt full-upgrade

View File

@ -1,37 +1,31 @@
#!/bin/bash #!/bin/bash
##makedesc: Install openvpn v2.5.8 (src) ##makedesc: Install openvpn v2.6.3 (src)
source `dirname $0`/../helpers || exit 255
# https://openvpn.net/community-downloads/ # https://openvpn.net/community-downloads/
# https://openvpn.net/community-resources/installing-openvpn/ # https://openvpn.net/community-resources/installing-openvpn/
[ $1 ] && OVPNVER="$1" || OVPNVER='2.5.8' [ "$1" ] && OVPNVER="$1" || OVPNVER='2.6.3'
echo title "Installing openvpn v${OVPNVER} (src)..."
echo "==============================================="
echo "Installing openvpn v${OVPNVER} (src)..."
echo "==============================================="
echo
set -ex require libssl-dev \
sudo apt install -y \
libssl-dev \
liblzo2-dev \ liblzo2-dev \
libpam0g-dev libpam0g-dev
mkdir -p "${HOME}/install/" mkdir -p "$HOME/install/"
wget "https://swupdate.openvpn.org/community/releases/openvpn-${OVPNVER}.tar.gz" \ download "https://swupdate.openvpn.org/community/releases/openvpn-${OVPNVER}.tar.gz" "$HOME/install/openvpn-${OVPNVER}.tar.gz" && \
-O "/tmp/openvpn-${OVPNVER}.tar.gz" unpak_targz "$HOME/install/openvpn-${OVPNVER}.tar.gz" "$HOME/install/" && \
tar -xzf "/tmp/openvpn-${OVPNVER}.tar.gz" -C "${HOME}/install/" cd "$HOME/install/openvpn-${OVPNVER}" && \
cd "${HOME}/install/openvpn-${OVPNVER}" sudo ./configure && \
sudo ./configure && \
sudo make && \ sudo make && \
sudo make install && sudo make install &&
sudo apt install -y \ apt_install network-manager-openvpn \
network-manager-openvpn \
network-manager-openvpn-gnome network-manager-openvpn-gnome
echo [ $? = 0 ] && {
echo "Finish!" echo
openvpn --version success "openvpn installed!"
echo openvpn --version
echo
}

View File

@ -1,34 +1,27 @@
#!/bin/bash #!/bin/bash
##makedesc: Install papirus-icon-theme (latest) ##makedesc: Install papirus-icon-theme (latest)
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing papirus-icon-theme (latest)..."
echo "==============================================="
echo
installed() { mkdir -p "$HOME/install/papirus-icon-theme" "$HOME/.local/share/icons/"
command -v "$1" >/dev/null 2>&1
}
if installed git; then if installed git; then
mkdir -p "${HOME}/install/" clone_quick https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git "$HOME/install/"
git clone https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git "${HOME}/install/papirus-icon-theme" --depth=1 --single-branch
else else
! installed wget && sudo apt install -y wget download https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O "$HOME/install/papirus-icon-theme.zip" && \
mkdir -p "${HOME}/install/papirus-icon-theme" unzip -oq "$HOME/install/papirus-icon-theme.zip" -d "$HOME/install/papirus-icon-theme" && \
wget https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O "${HOME}/install/papirus-icon-theme.zip" rm -f "$HOME/install/papirus-icon-theme.zip"
unzip -oq "${HOME}/install/papirus-icon-theme.zip" -d "${HOME}/install/papirus-icon-theme"
rm -f "${HOME}/install/papirus-icon-theme.zip"
fi fi
mkdir -p "${HOME}/.local/share/icons/" symlink "$HOME/install/papirus-icon-theme/Papirus" "$HOME/.local/share/icons/Papirus" && \
ln -sf "${HOME}/install/papirus-icon-theme/Papirus" "${HOME}/.local/share/icons/Papirus" symlink "$HOME/install/papirus-icon-theme/Papirus-Dark" "$HOME/.local/share/icons/Papirus-Dark" && \
ln -sf "${HOME}/install/papirus-icon-theme/Papirus-Dark" "${HOME}/.local/share/icons/Papirus-Dark" symlink "$HOME/install/papirus-icon-theme/Papirus-Light" "$HOME/.local/share/icons/Papirus-Light"
ln -sf "${HOME}/install/papirus-icon-theme/Papirus-Light" "${HOME}/.local/share/icons/Papirus-Light"
[ $? = 0 ] && {
echo
success "Papirus icons installed!"
info "You can find them in $HOME/.local/share/icons/"
echo
}
echo
echo "Finish! Don't forget to change current icon theme."
echo "You can find them here:"
echo -e "\t${HOME}/.local/share/icons/"
echo

View File

@ -1,16 +1,14 @@
#!/bin/bash #!/bin/bash
##makedesc: Install postgresql (latest) and php-pgsql (if php is installed) ##makedesc: Install postgresql (latest) and php-pgsql (if php is installed)
source `dirname $0`/../helpers || exit 255
echo title
echo "==============================================="
echo "Installing postgresql (latest)..."
echo "==============================================="
echo
installed() { require postgresql postgresql-contrib && \
command -v "$1" >/dev/null 2>&1 sudo service postgresql restart && \
} {
echo
sudo apt install -y --autoremove postgresql postgresql-contrib success "openvpn installed!"
sudo service postgresql restart postgres --version
installed 'php' && sudo apt install -y --autoremove php-pgsql echo
}

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)" COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\"" NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || { cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH $NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile" echo "$NEWPATH" >> "$HOME/.profile"
} }
source "${HOME}/.profile" source "$HOME/.profile"
composer global require vimeo/psalm --dev composer global require vimeo/psalm --dev

View File

@ -16,11 +16,11 @@ installed() {
! installed 'make' && sudo apt install -y make ! installed 'make' && sudo apt install -y make
! installed 'wget' && sudo apt install -y wget ! installed 'wget' && sudo apt install -y wget
[ -d "${HOME}/install/php-spx" ] || mkdir -p "${HOME}/install/php-spx" [ -d "$HOME/install/php-spx" ] || mkdir -p "$HOME/install/php-spx"
wget https://github.com/NoiseByNorthwest/php-spx/archive/refs/heads/release/latest.zip -O /tmp/php-spx.zip \ wget https://github.com/NoiseByNorthwest/php-spx/archive/refs/heads/release/latest.zip -O /tmp/php-spx.zip \
&& unzip -oq /tmp/php-spx.zip -d "${HOME}/install/php-spx" \ && unzip -oq /tmp/php-spx.zip -d "$HOME/install/php-spx" \
&& rm /tmp/php-spx.zip \ && rm /tmp/php-spx.zip \
&& cd "${HOME}/install/php-spx/php-spx-release-latest" \ && cd "$HOME/install/php-spx/php-spx-release-latest" \
&& phpize \ && phpize \
&& ./configure \ && ./configure \
&& make \ && make \

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)" COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\"" NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || { cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH $NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile" echo "$NEWPATH" >> "$HOME/.profile"
} }
source "${HOME}/.profile" source "$HOME/.profile"
composer global require squizlabs/php_codesniffer --dev composer global require squizlabs/php_codesniffer --dev
composer global require friendsofphp/php-cs-fixer --dev composer global require friendsofphp/php-cs-fixer --dev

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)" COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\"" NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || { cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH $NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile" echo "$NEWPATH" >> "$HOME/.profile"
} }
source "${HOME}/.profile" source "$HOME/.profile"
composer global require phpmd/phpmd --dev composer global require phpmd/phpmd --dev

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)" COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\"" NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || { cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH $NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile" echo "$NEWPATH" >> "$HOME/.profile"
} }
source "${HOME}/.profile" source "$HOME/.profile"
composer global require phpstan/phpstan --dev composer global require phpstan/phpstan --dev

View File

@ -16,11 +16,11 @@ installed() {
COMPOSER_GLOBAL_HOME="$(composer config -g home)" COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\"" NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || { cat "$HOME/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH $NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile" echo "$NEWPATH" >> "$HOME/.profile"
} }
source "${HOME}/.profile" source "$HOME/.profile"
composer global require phpunit/phpunit --dev composer global require phpunit/phpunit --dev

View File

@ -1,28 +1,33 @@
#!/bin/bash #!/bin/bash
##makedesc: Install postman (latest) ##makedesc: Install postman (latest)
source `dirname $0`/../helpers || exit 255
echo # https://learning.postman.com/docs/getting-started/installation-and-updates/#installing-postman-on-linux
echo "==============================================="
echo "Installing postman (latest)..."
echo "==============================================="
echo
mkdir -p ${HOME}/install/postman # set -ex
mkdir -p ${HOME}/.local/bin
wget "https://dl.pstmn.io/download/latest/linux64" -O ${HOME}/install/postman.tar.gz && \
tar -xzf ${HOME}/install/postman.tar.gz -C ${HOME}/install/postman && \
ln -sf ${HOME}/install/postman/Postman/Postman ${HOME}/.local/bin/postman && \
mkdir -p "${HOME}/.local/share/applications" && \
cat << EOF > "${HOME}/.local/share/applications/Postman.desktop"
#!/usr/bin/env xdg-open
title
mkdir -p "$HOME/install" && \
"$HOME/.local/bin" && \
"$HOME/.local/share/applications"
download "https://dl.pstmn.io/download/latest/linux64" "$HOME/install/postman.tar.gz" && \
unpak_targz "$HOME/install/postman.tar.gz" "$HOME/install" && \
symlink "$HOME/install/Postman/Postman" "$HOME/.local/bin/postman" && \
cat << EOF > "$HOME/.local/share/applications/Postman.desktop" && sudo update-desktop-database
[Desktop Entry] [Desktop Entry]
Name=Postman Name=Postman
Exec=${HOME}/.local/bin/postman Exec=$HOME/.local/bin/postman %U
Icon=${HOME}/install/postman/Postman/app/icons/icon_128x128.png Icon=$HOME/install/Postman/app/icons/icon_128x128.png
Categories=Utility,Network Categories=Development,Network
Terminal=false Terminal=false
Type=Application Type=Application
Encoding=UTF-8 Encoding=UTF-8
EOF EOF
sudo update-desktop-database
[ $? = 0 ] && {
echo
success "Postman installed!"
echo
}

View File

@ -7,7 +7,7 @@ echo "Installing telegram (latest)..."
echo "===============================================" echo "==============================================="
echo echo
mkdir -p "${HOME}/install" "${HOME}/.local/bin" mkdir -p "$HOME/install" "$HOME/.local/bin"
wget "https://telegram.org/dl/desktop/linux" -O ${HOME}/install/telegram.tar.gz && \ wget "https://telegram.org/dl/desktop/linux" -O $HOME/install/telegram.tar.gz && \
tar -xJf ${HOME}/install/telegram.tar.gz -C ${HOME}/.local/bin tar -xJf $HOME/install/telegram.tar.gz -C $HOME/.local/bin
${HOME}/.local/bin/Telegram/Telegram & disown > /dev/null $HOME/.local/bin/Telegram/Telegram & disown > /dev/null

View File

@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
##makedesc: Install Vivaldi + ppa ##makedesc: Install Vivaldi + ppa
# https://repo.vivaldi.com
# https://help.vivaldi.com/desktop/#install-update # https://help.vivaldi.com/desktop/#install-update
# https://help.vivaldi.com/desktop/install-update/manual-setup-vivaldi-linux-repositories/ # https://help.vivaldi.com/desktop/install-update/manual-setup-vivaldi-linux-repositories/

View File

@ -12,8 +12,8 @@ echo
# 11.04.23: release 2021.12.17 in snap/apt/github is broken (Unable to extract uploader id) # 11.04.23: release 2021.12.17 in snap/apt/github is broken (Unable to extract uploader id)
# and still no fix officially released, so we just build it from actual sources # and still no fix officially released, so we just build it from actual sources
# curl -L https://yt-dl.org/downloads/latest/youtube-dl -o "${HOME}/.local/bin/youtube-dl" && \ # curl -L https://yt-dl.org/downloads/latest/youtube-dl -o "$HOME/.local/bin/youtube-dl" && \
# sudo chmod +rx "${HOME}/.local/bin/youtube-dl" # sudo chmod +rx "$HOME/.local/bin/youtube-dl"
installed() { installed() {
command -v "$1" >/dev/null 2>&1 command -v "$1" >/dev/null 2>&1

View File

@ -11,5 +11,5 @@ echo
install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
tools_dir="`dirname $install_dir`/tools" tools_dir="`dirname $install_dir`/tools"
cp "${tools_dir}/ytdlcue.sh" "${HOME}/.local/bin/ytdlcue" cp "${tools_dir}/ytdlcue.sh" "$HOME/.local/bin/ytdlcue"
sudo chmod +rx "${HOME}/.local/bin/ytdlcue" sudo chmod +rx "$HOME/.local/bin/ytdlcue"

View File

@ -8,4 +8,4 @@ echo "==============================================="
echo echo
sudo apt install -y --autoremove zsh sudo apt install -y --autoremove zsh
echo "source ~/.profile" >> ~/.zshrc echo "source ~/.profile" >> "$HOME/.zshrc"

13
tools/ignore-veth.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
# https://forums.opensuse.org/t/networkmanager-shows-connection-to-lo/164441/13
# https://man.archlinux.org/man/NetworkManager.conf.5.en#Device_List_Format
# https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-networkmanager-to-ignore-certain-devices_configuring-and-managing-networking
sudo touch /etc/NetworkManager/conf.d/10-ignore-veth.conf
sudo tee <<EOF /etc/NetworkManager/conf.d/10-ignore-veth.conf > /dev/null
# Disable virtual interfaces to be managed via NetworkManager
[keyfile]
unmanaged-devices=interface-name:veth*
EOF
sudo systemctl reload NetworkManager

13
uninstall/apache2 Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
##makedesc: Uninstall apache2
source `dirname $0`/../helpers || exit 255
title
sudo apt remove -y --autoremove apache2
[ $? = 0 ] && {
echo
success "apache2 uninstalled!"
echo
}

19
uninstall/grub-customizer Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
##makedesc: Uninstall grub-customizer with ppa
source `dirname $0`/../helpers || exit 255
title
source_file="/etc/apt/sources.list.d/$(ls -1 /etc/apt/sources.list.d/ | grep danielrichter2007)"
sudo apt remove -y --autoremove grub-customizer && \
[ -f "$source_file" ] && {
sudo rm "$source_file" && \
sudo apt update
}
[ $? = 0 ] && {
echo
success "grub-customizer uninstalled!"
echo
}

View File

@ -9,10 +9,10 @@ echo
set -x set -x
rm -rf \ rm -rf \
"${HOME}/.local/bin/lite-xl" \ "$HOME/.local/bin/lite-xl" \
"${HOME}/.local/share/applications/org.lite_xl.lite_xl.desktop" \ "$HOME/.local/share/applications/org.lite_xl.lite_xl.desktop" \
"${HOME}/.local/share/lite-xl" \ "$HOME/.local/share/lite-xl" \
"${HOME}/.config/lite-xl" "$HOME/.config/lite-xl"
sudo update-desktop-database && \ sudo update-desktop-database && \
xdg-desktop-menu forceupdate xdg-desktop-menu forceupdate