Merge branch 'refactor2' of git.axenov.dev:anthony/shell into refactor2
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
|
.DS_Store
|
||||||
*.bak
|
*.bak
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
@@ -1,241 +1,261 @@
|
|||||||
# Autogenerated at 10.07.2025 23:45 using ./gen-makefile
|
# Autogenerated at 24.03.2026 00:34 using ./gen-makefile
|
||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
|
|
||||||
#===============================================
|
#===============================================
|
||||||
# Scripts listed in ./install
|
# Scripts listed in ./install
|
||||||
#===============================================
|
#===============================================
|
||||||
|
|
||||||
##apache2: Install apache2 (latest)
|
##anytype: Manage anytype (deb)
|
||||||
|
anytype:
|
||||||
|
@./install/anytype install
|
||||||
|
|
||||||
|
##apache2: Manage apache2 (apt)
|
||||||
apache2:
|
apache2:
|
||||||
@./install/apache2
|
@./install/apache2 install
|
||||||
|
|
||||||
##apt: Install software from apt
|
##apt: Install basic software from apt
|
||||||
apt:
|
apt:
|
||||||
@./install/apt
|
@./install/apt install
|
||||||
|
|
||||||
##canon-mg2500: Install Canon Pixma MG2500 + ppa
|
##brew: Install software from brew
|
||||||
|
brew:
|
||||||
|
@./install/brew install
|
||||||
|
|
||||||
|
##canon-mg2500: Canon Pixma MG2500 + ppa
|
||||||
canon-mg2500:
|
canon-mg2500:
|
||||||
@./install/canon-mg2500
|
@./install/canon-mg2500 install
|
||||||
|
|
||||||
##chrome: Install google chrome (latest)
|
##chrome: Google Chrome (latest)
|
||||||
chrome:
|
chrome:
|
||||||
@./install/chrome
|
@./install/chrome install
|
||||||
|
|
||||||
##clamav: ClamAV (WIP)
|
##clamav: ClamAV
|
||||||
clamav:
|
clamav:
|
||||||
@./install/clamav
|
@./install/clamav install
|
||||||
|
|
||||||
##composer: Install composer (latest)
|
##composer: Install composer (latest)
|
||||||
composer:
|
composer:
|
||||||
@./install/composer
|
@./install/composer install
|
||||||
|
|
||||||
##docker: Install docker (latest) + ppa
|
##docker: Docker + ppa
|
||||||
docker:
|
docker:
|
||||||
@./install/docker
|
@./install/docker install
|
||||||
|
|
||||||
##dots: Install dotfiles
|
##dots: Install dotfiles
|
||||||
dots:
|
dots:
|
||||||
@./install/dots
|
@./install/dots install
|
||||||
|
|
||||||
##droidcam: Install droidcam v1.9.0
|
##droidcam: Install droidcam v1.9.0
|
||||||
droidcam:
|
droidcam:
|
||||||
@./install/droidcam
|
@./install/droidcam install
|
||||||
|
|
||||||
##droidcam-obs: Install droidcam-obs plugin v1.5.1
|
##droidcam-obs: Install droidcam-obs plugin v1.5.1
|
||||||
droidcam-obs:
|
droidcam-obs:
|
||||||
@./install/droidcam-obs
|
@./install/droidcam-obs install
|
||||||
|
|
||||||
|
##_example: Example script
|
||||||
|
_example:
|
||||||
|
@./install/_example install
|
||||||
|
|
||||||
##flameshot: Install flameshot (latest)
|
##flameshot: Install flameshot (latest)
|
||||||
flameshot:
|
flameshot:
|
||||||
@./install/flameshot
|
@./install/flameshot install
|
||||||
|
|
||||||
##frkn.deprecated: Install Wireguard + FRKN
|
|
||||||
frkn.deprecated:
|
|
||||||
@./install/frkn.deprecated
|
|
||||||
|
|
||||||
##git: Install git (latest)
|
##git: Install git (latest)
|
||||||
git:
|
git:
|
||||||
@./install/git
|
@./install/git install
|
||||||
|
|
||||||
##golang: Install golang v1.21.0
|
##golang: Install golang
|
||||||
golang:
|
golang:
|
||||||
@./install/golang
|
@./install/golang install
|
||||||
|
|
||||||
##grub-customizer: Install grub-customizer (latest + ppa)
|
##grub-customizer: Install grub-customizer (latest + ppa)
|
||||||
grub-customizer:
|
grub-customizer:
|
||||||
@./install/grub-customizer
|
@./install/grub-customizer install
|
||||||
|
|
||||||
##jbmono: Install JetBrains Mono fonts
|
|
||||||
jbmono:
|
|
||||||
@./install/jbmono
|
|
||||||
|
|
||||||
##kde-appmenu: Install KDE Window AppMenu Applet
|
##kde-appmenu: Install KDE Window AppMenu Applet
|
||||||
kde-appmenu:
|
kde-appmenu:
|
||||||
@./install/kde-appmenu
|
@./install/kde-appmenu install
|
||||||
|
|
||||||
##kde-backports: Install KDE Backports
|
##kde-backports: Install KDE Backports
|
||||||
kde-backports:
|
kde-backports:
|
||||||
@./install/kde-backports
|
@./install/kde-backports install
|
||||||
|
|
||||||
##kde-file-templates: Install file templates (KDE)
|
##kde-file-templates: Install file templates (KDE)
|
||||||
kde-file-templates:
|
kde-file-templates:
|
||||||
@./install/kde-file-templates
|
@./install/kde-file-templates install
|
||||||
|
|
||||||
##kde-portal: Install KDE portal
|
##kde-portal: Install KDE portal
|
||||||
kde-portal:
|
kde-portal:
|
||||||
@./install/kde-portal
|
@./install/kde-portal install
|
||||||
|
|
||||||
|
##keyd: Install keyd
|
||||||
|
keyd:
|
||||||
|
@./install/keyd install
|
||||||
|
|
||||||
##libreoffice: Install libreoffice
|
##libreoffice: Install libreoffice
|
||||||
libreoffice:
|
libreoffice:
|
||||||
@./install/libreoffice
|
@./install/libreoffice install
|
||||||
|
|
||||||
##lite-xl: Install lite-xl v2.1.7
|
##lite-xl: Install lite-xl v2.1.7
|
||||||
lite-xl:
|
lite-xl:
|
||||||
@./install/lite-xl
|
@./install/lite-xl install
|
||||||
|
|
||||||
|
##llmfit: Install llmfit
|
||||||
|
llmfit:
|
||||||
|
@./install/llmfit install
|
||||||
|
|
||||||
##mariadb: Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
|
##mariadb: Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
|
||||||
mariadb:
|
mariadb:
|
||||||
@./install/mariadb
|
@./install/mariadb install
|
||||||
|
|
||||||
|
##nerd-fonts: Install nerd-fonts
|
||||||
|
nerd-fonts:
|
||||||
|
@./install/nerd-fonts install
|
||||||
|
|
||||||
##nodejs: Install nodejs + npm via nvm
|
##nodejs: Install nodejs + npm via nvm
|
||||||
nodejs:
|
nodejs:
|
||||||
@./install/nodejs
|
@./install/nodejs install
|
||||||
|
|
||||||
##ntfy: Install ntfy (latest) + ppa
|
##ntfy: Install ntfy (latest) + ppa
|
||||||
ntfy:
|
ntfy:
|
||||||
@./install/ntfy
|
@./install/ntfy install
|
||||||
|
|
||||||
##nvim: Install nvim + lazyvim
|
##nvim: Install nvim + lazyvim
|
||||||
nvim:
|
nvim:
|
||||||
@./install/nvim
|
@./install/nvim install
|
||||||
|
|
||||||
##obs-studio: Install obs-studio (latest snap)
|
##obs-studio: Install obs-studio (latest snap)
|
||||||
obs-studio:
|
obs-studio:
|
||||||
@./install/obs-studio
|
@./install/obs-studio install
|
||||||
|
|
||||||
|
##ollama: Install ollama
|
||||||
|
ollama:
|
||||||
|
@./install/ollama install
|
||||||
|
|
||||||
##omz-clean: Install omz (latest)
|
##omz-clean: Install omz (latest)
|
||||||
omz-clean:
|
omz-clean:
|
||||||
@./install/omz-clean
|
@./install/omz-clean install
|
||||||
|
|
||||||
##omz-fancy: Install omz fancy (powerline10k + MesloLGS font)
|
##omz-fancy: Install omz fancy (powerline10k + MesloLGS font)
|
||||||
omz-fancy:
|
omz-fancy:
|
||||||
@./install/omz-fancy
|
@./install/omz-fancy install
|
||||||
|
|
||||||
##openvpn: Install openvpn v2.6.3 (src)
|
##openvpn: Install openvpn v2.6.3 (src)
|
||||||
openvpn:
|
openvpn:
|
||||||
@./install/openvpn
|
@./install/openvpn install
|
||||||
|
|
||||||
##papirus: Install papirus-icon-theme (latest)
|
##papirus: Install papirus-icon-theme (latest)
|
||||||
papirus:
|
papirus:
|
||||||
@./install/papirus
|
@./install/papirus install
|
||||||
|
|
||||||
##pgsql: Install postgresql (latest) and php-pgsql (if php is installed)
|
##pgsql: Install postgresql (latest) and php-pgsql (if php is installed)
|
||||||
pgsql:
|
pgsql:
|
||||||
@./install/pgsql
|
@./install/pgsql install
|
||||||
|
|
||||||
##php: Install php v8.4
|
##php: Install php v8.4
|
||||||
php:
|
php:
|
||||||
@./install/php
|
@./install/php install
|
||||||
|
|
||||||
##phpcs: Install phpcs + php-cs-fixer
|
##phpcs: Install phpcs + php-cs-fixer
|
||||||
phpcs:
|
phpcs:
|
||||||
@./install/phpcs
|
@./install/phpcs install
|
||||||
|
|
||||||
##phpmd: Install phpmd
|
##phpmd: Install phpmd
|
||||||
phpmd:
|
phpmd:
|
||||||
@./install/phpmd
|
@./install/phpmd install
|
||||||
|
|
||||||
##php-psalm: Install psalm
|
##php-psalm: Install psalm
|
||||||
php-psalm:
|
php-psalm:
|
||||||
@./install/php-psalm
|
@./install/php-psalm install
|
||||||
|
|
||||||
##php-spx: Install php-spx
|
##php-spx: Install php-spx
|
||||||
php-spx:
|
php-spx:
|
||||||
@./install/php-spx
|
@./install/php-spx install
|
||||||
|
|
||||||
##phpstan: Install phpstan
|
##phpstan: Install phpstan
|
||||||
phpstan:
|
phpstan:
|
||||||
@./install/phpstan
|
@./install/phpstan install
|
||||||
|
|
||||||
##phpunit: Install phpunit
|
##phpunit: Install phpunit
|
||||||
phpunit:
|
phpunit:
|
||||||
@./install/phpunit
|
@./install/phpunit install
|
||||||
|
|
||||||
##postman: Install postman (latest)
|
##postman: Install postman (latest)
|
||||||
postman:
|
postman:
|
||||||
@./install/postman
|
@./install/postman install
|
||||||
|
|
||||||
##qt5: Install qt5
|
##qt5: Install qt5
|
||||||
qt5:
|
qt5:
|
||||||
@./install/qt5
|
@./install/qt5 install
|
||||||
|
|
||||||
##rustdesk: Install rustdesk client (flatpak)
|
##rustdesk: Install rustdesk client v1.4.2 (deb)
|
||||||
rustdesk:
|
rustdesk:
|
||||||
@./install/rustdesk
|
@./install/rustdesk install
|
||||||
|
|
||||||
##rustdesk-deb: Install rustdesk client v1.4.0 (deb)
|
|
||||||
rustdesk-deb:
|
|
||||||
@./install/rustdesk-deb
|
|
||||||
|
|
||||||
##snap: Install bunch of software from snap
|
##snap: Install bunch of software from snap
|
||||||
snap:
|
snap:
|
||||||
@./install/snap
|
@./install/snap install
|
||||||
|
|
||||||
##sublimemerge: Install Sublime Merge
|
##sublimemerge: Install Sublime Merge
|
||||||
sublimemerge:
|
sublimemerge:
|
||||||
@./install/sublimemerge
|
@./install/sublimemerge install
|
||||||
|
|
||||||
##sublimetext: Install Sublime Text
|
##sublimetext: Install Sublime Text
|
||||||
sublimetext:
|
sublimetext:
|
||||||
@./install/sublimetext
|
@./install/sublimetext install
|
||||||
|
|
||||||
##suld: Samsung Unified Linux Driver repo
|
##suld: Samsung Unified Linux Driver repo
|
||||||
suld:
|
suld:
|
||||||
@./install/suld
|
@./install/suld install
|
||||||
|
|
||||||
##syncthing: Install syncthing (latest) + ppa
|
##syncthing: Install syncthing (latest) + ppa
|
||||||
syncthing:
|
syncthing:
|
||||||
@./install/syncthing
|
@./install/syncthing install
|
||||||
|
|
||||||
##telebit: Install telebit (latest)
|
##telebit: Install telebit (latest)
|
||||||
telebit:
|
telebit:
|
||||||
@./install/telebit
|
@./install/telebit install
|
||||||
|
|
||||||
##telegram: Install telegram (latest)
|
##telegram: Install telegram (latest)
|
||||||
telegram:
|
telegram:
|
||||||
@./install/telegram
|
@./install/telegram install
|
||||||
|
|
||||||
|
##tilt: <no description>
|
||||||
|
tilt:
|
||||||
|
@./install/tilt install
|
||||||
|
|
||||||
##ulauncher: Install ulauncher (latest) + ppa
|
##ulauncher: Install ulauncher (latest) + ppa
|
||||||
ulauncher:
|
ulauncher:
|
||||||
@./install/ulauncher
|
@./install/ulauncher install
|
||||||
|
|
||||||
##vivaldi: Install Vivaldi + ppa
|
##vivaldi: Install Vivaldi + ppa
|
||||||
vivaldi:
|
vivaldi:
|
||||||
@./install/vivaldi
|
@./install/vivaldi install
|
||||||
|
|
||||||
##vscode: VSCode deb-package
|
##vscode: VSCode deb-package
|
||||||
vscode:
|
vscode:
|
||||||
@./install/vscode
|
@./install/vscode install
|
||||||
|
|
||||||
##wine: Install wine (latest) + ppa
|
##wine: Install wine (latest) + ppa
|
||||||
wine:
|
wine:
|
||||||
@./install/wine
|
@./install/wine install
|
||||||
|
|
||||||
##youtube-dl: Install youtube-dl (src)
|
##youtube-dl: Install youtube-dl (src)
|
||||||
youtube-dl:
|
youtube-dl:
|
||||||
@./install/youtube-dl
|
@./install/youtube-dl install
|
||||||
|
|
||||||
##ytdlcue: Install ytdlcue
|
##ytdlcue: Install ytdlcue
|
||||||
ytdlcue:
|
ytdlcue:
|
||||||
@./install/ytdlcue
|
@./install/ytdlcue install
|
||||||
|
|
||||||
##zint: Install zint (latest)
|
##zint: Install zint (latest)
|
||||||
zint:
|
zint:
|
||||||
@./install/zint
|
@./install/zint install
|
||||||
|
|
||||||
##zsh: Install vanilla zsh
|
##zsh: Install vanilla zsh
|
||||||
zsh:
|
zsh:
|
||||||
@./install/zsh
|
@./install/zsh install
|
||||||
|
|
||||||
|
|
||||||
#===============================================
|
#===============================================
|
||||||
@@ -265,63 +285,59 @@ phpstack: php phptools
|
|||||||
|
|
||||||
##^omz: Upgrade omz
|
##^omz: Upgrade omz
|
||||||
^omz:
|
^omz:
|
||||||
@./upgrade/omz
|
@./upgrade/omz upgrade
|
||||||
|
|
||||||
#===============================================
|
#===============================================
|
||||||
# Scripts listed in ./uninstall
|
# Scripts listed in ./uninstall
|
||||||
#===============================================
|
#===============================================
|
||||||
|
|
||||||
##/apache2: Uninstall apache2
|
|
||||||
/apache2:
|
|
||||||
@./uninstall/apache2
|
|
||||||
|
|
||||||
##/canon-mg2500: Uninstall Canon Pixma MG2500 + ppa
|
|
||||||
/canon-mg2500:
|
|
||||||
@./uninstall/canon-mg2500
|
|
||||||
|
|
||||||
##/chrome: Uninstall google chrome
|
##/chrome: Uninstall google chrome
|
||||||
/chrome:
|
/chrome:
|
||||||
@./uninstall/chrome
|
@./uninstall/chrome remove
|
||||||
|
|
||||||
##/composer: Uninstall composer
|
##/composer: Uninstall composer
|
||||||
/composer:
|
/composer:
|
||||||
@./uninstall/composer
|
@./uninstall/composer remove
|
||||||
|
|
||||||
##/docker: Uninstall docker + ppa
|
##/docker: Uninstall docker + ppa
|
||||||
/docker:
|
/docker:
|
||||||
@./uninstall/docker
|
@./uninstall/docker remove
|
||||||
|
|
||||||
##/grub-customizer: Uninstall grub-customizer with ppa
|
##/grub-customizer: Uninstall grub-customizer with ppa
|
||||||
/grub-customizer:
|
/grub-customizer:
|
||||||
@./uninstall/grub-customizer
|
@./uninstall/grub-customizer remove
|
||||||
|
|
||||||
##/lazynvim: <no description>
|
##/lazynvim: <no description>
|
||||||
/lazynvim:
|
/lazynvim:
|
||||||
@./uninstall/lazynvim
|
@./uninstall/lazynvim remove
|
||||||
|
|
||||||
##/lite-xl: Uninstall lite-xl
|
##/lite-xl: Uninstall lite-xl
|
||||||
/lite-xl:
|
/lite-xl:
|
||||||
@./uninstall/lite-xl
|
@./uninstall/lite-xl remove
|
||||||
|
|
||||||
##/omz: Uninstall omz
|
##/omz: Uninstall omz
|
||||||
/omz:
|
/omz:
|
||||||
@./uninstall/omz
|
@./uninstall/omz remove
|
||||||
|
|
||||||
|
##/rustdesk: Uninstall rustdesk client
|
||||||
|
/rustdesk:
|
||||||
|
@./uninstall/rustdesk remove
|
||||||
|
|
||||||
##/sublimemerge: Uninstall Sublime Merge
|
##/sublimemerge: Uninstall Sublime Merge
|
||||||
/sublimemerge:
|
/sublimemerge:
|
||||||
@./uninstall/sublimemerge
|
@./uninstall/sublimemerge remove
|
||||||
|
|
||||||
##/sublimetext: Uninstall Sublime Text
|
##/sublimetext: Uninstall Sublime Text
|
||||||
/sublimetext:
|
/sublimetext:
|
||||||
@./uninstall/sublimetext
|
@./uninstall/sublimetext remove
|
||||||
|
|
||||||
##/vivaldi: Uninstall vivaldi + ppa
|
##/vivaldi: Uninstall vivaldi + ppa
|
||||||
/vivaldi:
|
/vivaldi:
|
||||||
@./uninstall/vivaldi
|
@./uninstall/vivaldi remove
|
||||||
|
|
||||||
##/wine: Uninstall wine
|
##/wine: Uninstall wine
|
||||||
/wine:
|
/wine:
|
||||||
@./uninstall/wine
|
@./uninstall/wine remove
|
||||||
|
|
||||||
#===============================================
|
#===============================================
|
||||||
# Service goals
|
# Service goals
|
||||||
|
|||||||
+3
-3
@@ -18,7 +18,7 @@ for file in ./install/*; do
|
|||||||
name=${name%.sh}
|
name=${name%.sh}
|
||||||
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||||
[ -z "$desc" ] && desc='<no description>'
|
[ -z "$desc" ] && desc='<no description>'
|
||||||
echo -e "##${name}: ${desc}\n${name}:\n\t@${file}\n" >> Makefile
|
echo -e "##${name}: ${desc}\n${name}:\n\t@${file} install\n" >> Makefile
|
||||||
done;
|
done;
|
||||||
|
|
||||||
cat << EOF >> Makefile
|
cat << EOF >> Makefile
|
||||||
@@ -47,7 +47,7 @@ for file in ./upgrade/*; do
|
|||||||
name=${name%.sh}
|
name=${name%.sh}
|
||||||
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||||
[ -z "$desc" ] && desc='<no description>'
|
[ -z "$desc" ] && desc='<no description>'
|
||||||
echo -e "##${CHR_UPGRADE}${name}: ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file}\n" >> Makefile
|
echo -e "##${CHR_UPGRADE}${name}: ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file} upgrade\n" >> Makefile
|
||||||
done;
|
done;
|
||||||
|
|
||||||
cat << EOF >> Makefile
|
cat << EOF >> Makefile
|
||||||
@@ -62,7 +62,7 @@ for file in ./uninstall/*; do
|
|||||||
name=${name%.sh}
|
name=${name%.sh}
|
||||||
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||||
[ -z "$desc" ] && desc='<no description>'
|
[ -z "$desc" ] && desc='<no description>'
|
||||||
echo -e "##${CHR_UNINSTALL}${name}: ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file}\n" >> Makefile
|
echo -e "##${CHR_UNINSTALL}${name}: ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file} remove\n" >> Makefile
|
||||||
done;
|
done;
|
||||||
|
|
||||||
cat << EOF >> Makefile
|
cat << EOF >> Makefile
|
||||||
|
|||||||
Executable
+46
@@ -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
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
##makedesc: Install software from brew
|
||||||
|
|
||||||
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
|
|
||||||
|
brew install \
|
||||||
|
bash \
|
||||||
|
stow \
|
||||||
|
gnupg \
|
||||||
|
pinentry-mac
|
||||||
|
|
||||||
|
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
|
||||||
|
gpgconf --kill gpg-agent
|
||||||
+16
-10
@@ -10,24 +10,27 @@ doRemove() {
|
|||||||
sudo apt purge -y docker* podman-docker containerd runc
|
sudo apt purge -y docker* podman-docker containerd runc
|
||||||
}
|
}
|
||||||
|
|
||||||
install_() {
|
installRepo() {
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing Docker"
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
doRemove
|
|
||||||
sudo apt install -y ca-certificates lsb-release
|
sudo apt install -y ca-certificates lsb-release
|
||||||
source /etc/os-release
|
source /etc/os-release
|
||||||
codename="$VERSION_CODENAME"
|
|
||||||
key="/etc/apt/keyrings/docker.asc"
|
key="/etc/apt/keyrings/docker.asc"
|
||||||
arch=$(dpkg --print-architecture)
|
arch=$(dpkg --print-architecture)
|
||||||
sudo install -m 0755 -d /etc/apt/keyrings
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o "$key"
|
curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o "$key"
|
||||||
sudo chmod a+r $key
|
sudo chmod a+r $key
|
||||||
echo "deb [arch=$arch signed-by=$key] https://download.docker.com/linux/ubuntu $codename stable" \
|
echo "deb [arch=$arch signed-by=$key] https://download.docker.com/linux/ubuntu $VERSION_CODENAME stable" \
|
||||||
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
sudo apt update
|
sudo apt update
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing Docker"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
# doRemove
|
||||||
|
installRepo
|
||||||
sudo apt install -y \
|
sudo apt install -y \
|
||||||
docker-ce \
|
docker-ce \
|
||||||
docker-ce-cli \
|
docker-ce-cli \
|
||||||
@@ -53,7 +56,8 @@ upgrade() {
|
|||||||
docker-ce-cli \
|
docker-ce-cli \
|
||||||
containerd.io \
|
containerd.io \
|
||||||
docker-buildx-plugin \
|
docker-buildx-plugin \
|
||||||
docker-compose-plugin
|
docker-compose-plugin \
|
||||||
|
docker-model-plugin
|
||||||
echo
|
echo
|
||||||
echo "Finish!"
|
echo "Finish!"
|
||||||
echo
|
echo
|
||||||
@@ -74,5 +78,7 @@ remove() {
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
u|upgrade|update) upgrade ;;
|
u|upgrade|update) upgrade ;;
|
||||||
r|remove|d|delete|p|purge) remove ;;
|
r|remove|d|delete|p|purge) remove ;;
|
||||||
|
install-repo) installRepo ;;
|
||||||
|
# remove-repo) removeRepo ;; #TODO
|
||||||
*) install ;;
|
*) install ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -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"
|
|
||||||
}
|
|
||||||
+46
-17
@@ -1,28 +1,57 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
##makedesc: Install golang v1.21.0
|
##makedesc: Install golang
|
||||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || 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://github.com/udhos/update-golang/blob/master/update-golang.sh
|
||||||
|
|
||||||
[ $1 ] && VERSION="$1" || VERSION="1.23.0"
|
set -eo pipefail
|
||||||
title "Installing golang v$VERSION..."
|
|
||||||
|
|
||||||
FILE="go$VERSION.linux-amd64.tar.gz"
|
doRemove() {
|
||||||
sudo rm -rf /usr/local/go && \
|
[ -d "/usr/local/go" ] && 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
|
|
||||||
|
|
||||||
[ $? = 0 ] && {
|
install() {
|
||||||
|
dlUrl="https://go.dev/dl"
|
||||||
|
json=$(curl -sSL "$dlUrl/?mode=json")
|
||||||
|
version=$(echo "$json" | jq -r '.[0].version')
|
||||||
|
echo
|
||||||
|
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
|
||||||
success "golang installed!"
|
|
||||||
info "NOTE: now run 'source ~/.profile' to apply new env vars"
|
|
||||||
go version
|
go version
|
||||||
|
go install github.com/go-delve/delve/cmd/dlv@latest
|
||||||
|
go install
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Removing golang"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
doRemove
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
r|remove|d|delete|p|purge) remove ;;
|
||||||
|
*) install ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|||||||
Executable
+69
@@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
##makedesc: Install keyd
|
||||||
|
|
||||||
|
# https://github.com/rvaiya/keyd
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
mkdir -p "$HOME/install"
|
||||||
|
|
||||||
|
install() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing keyd (latest)"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
hash git || { echo "ERROR: git not installed" ; exit 1; }
|
||||||
|
cd "$HOME/install"
|
||||||
|
git clone --depth=1 --single-branch https://github.com/rvaiya/keyd.git "$HOME/install/keyd"
|
||||||
|
cd "$HOME/install/keyd"
|
||||||
|
make && sudo make install
|
||||||
|
sudo systemctl enable --now keyd
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
upgrade() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Upgrading keyd"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
hash git || { echo "ERROR: git not installed" ; exit 1; }
|
||||||
|
[ -d "$HOME/install/keyd" ] || { echo "ERROR: repo not found: $HOME/install/keyd" ; exit 1; }
|
||||||
|
cd "$HOME/install/keyd"
|
||||||
|
make && sudo make install
|
||||||
|
sudo systemctl enable --now keyd
|
||||||
|
sudo usermod -aG keyd "$(whoami)"
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
sudo systemctl restart keyd
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
sudo systemctl reload keyd
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Removing keyd"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
sudo dpkg -r keyd
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
restart) restart ;;
|
||||||
|
reload) reload ;;
|
||||||
|
u|upgrade|update) upgrade ;;
|
||||||
|
r|remove|d|delete|p|purge) remove ;;
|
||||||
|
*) install ;;
|
||||||
|
esac
|
||||||
|
|
||||||
Executable
+49
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
##makedesc: Install llmfit
|
||||||
|
|
||||||
|
# https://github.com/AlexsJones/llmfit
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
mkdir -p "$HOME/install"
|
||||||
|
|
||||||
|
install() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing llmfit (latest)"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
curl -fsSL https://llmfit.axjns.dev/install.sh | sh -s -- --local
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
upgrade() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Upgrading llmfit"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
curl -fsSL https://llmfit.axjns.dev/install.sh | sh -s -- --local
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Removing llmfit"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
sudo rm -rf "$(which llmfit)"
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
u|upgrade) upgrade ;;
|
||||||
|
r|remove|d|delete|p|purge) remove ;;
|
||||||
|
*) install ;;
|
||||||
|
esac
|
||||||
|
|
||||||
+25
-17
@@ -5,20 +5,30 @@ set -eo pipefail
|
|||||||
|
|
||||||
#TODO nokia-sans
|
#TODO nokia-sans
|
||||||
|
|
||||||
downloadPath="$HOME/install/nerd-fonts"
|
isMac() { uname -s | grep -q "Darwin"; }
|
||||||
installPath="$HOME/.local/share/fonts/"
|
isLinux() { uname -s | grep -q "Linux"; }
|
||||||
url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download"
|
|
||||||
|
|
||||||
fonts=(
|
url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download"
|
||||||
|
downloadPath="$HOME/install/nerd-fonts"
|
||||||
|
if isMac; then
|
||||||
|
installPath="$HOME/Library/Fonts/"
|
||||||
|
elif isLinux; then
|
||||||
|
installPath="$HOME/.local/share/fonts/"
|
||||||
|
else
|
||||||
|
echo "This OS is not supported yet!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
fontsNames=(
|
||||||
FiraCode
|
FiraCode
|
||||||
FiraMono
|
# FiraMono
|
||||||
JetBrainsMono
|
JetBrainsMono
|
||||||
Meslo
|
Meslo
|
||||||
Noto
|
# Noto
|
||||||
RobotoMono
|
RobotoMono
|
||||||
Ubuntu
|
# Ubuntu
|
||||||
UbuntuMono
|
# UbuntuMono
|
||||||
UbuntuSans
|
# UbuntuSans
|
||||||
)
|
)
|
||||||
|
|
||||||
install() {
|
install() {
|
||||||
@@ -29,15 +39,13 @@ install() {
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
[[ -d "$downloadPath" ]] || mkdir -p "$downloadPath"
|
[[ -d "$downloadPath" ]] || mkdir -p "$downloadPath"
|
||||||
|
for fontname in "${fontsNames[@]}"; do
|
||||||
for fontname in "${fonts[@]}"; do
|
fontDir="$installPath/Nerd-$fontname"
|
||||||
fontdir="$installPath/Nerd-$fontname"
|
|
||||||
wget "$url/$fontname.tar.xz" -O "$downloadPath/$fontname.tar.xz"
|
wget "$url/$fontname.tar.xz" -O "$downloadPath/$fontname.tar.xz"
|
||||||
[[ -d "$installPath/$fontname" ]] || mkdir -p "$fontdir"
|
[[ -d "$installPath/$fontname" ]] || mkdir -p "$fontDir"
|
||||||
tar -xJf "$downloadPath/$fontname.tar.xz" -C "$fontdir"
|
tar -xJf "$downloadPath/$fontname.tar.xz" -C "$fontDir"
|
||||||
done
|
done
|
||||||
|
isLinux && fc-cache -vf "$installPath"
|
||||||
fc-cache -vf "$installPath"
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Finish!"
|
echo "Finish!"
|
||||||
@@ -52,7 +60,7 @@ remove() {
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
find "$installPath" -type d -name "Nerd-*" -exec rm -rf {} +
|
find "$installPath" -type d -name "Nerd-*" -exec rm -rf {} +
|
||||||
fc-cache -vf "$installPath"
|
isLinux && fc-cache -vf "$installPath"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Finish!"
|
echo "Finish!"
|
||||||
|
|||||||
+57
-18
@@ -1,27 +1,66 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
##makedesc: Install nodejs + npm via nvm
|
##makedesc: Install nodejs + npm via nvm
|
||||||
|
|
||||||
echo
|
isMac() { uname -s | grep -q "Darwin"; }
|
||||||
echo "==============================================="
|
isLinux() { uname -s | grep -q "Linux"; }
|
||||||
echo "Installing nodejs..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
installed() {
|
install() {
|
||||||
command -v "$1" >/dev/null 2>&1
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing nodejs + nvm..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
if isMac; then
|
||||||
|
brew install nvm
|
||||||
|
elif isLinux; then
|
||||||
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
||||||
|
else
|
||||||
|
echo "This OS is not supported yet!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
nvm install-latest-npm
|
||||||
|
nvm install node
|
||||||
|
nvm use node
|
||||||
|
export NVM_DIR="$HOME/.nvm"
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
|
||||||
|
[ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion"
|
||||||
|
|
||||||
|
cat << EOF >> "$HOME/.profile"
|
||||||
|
|
||||||
|
# nvm (not nvim!)
|
||||||
|
export NVM_DIR="\$HOME/.nvm" # nvim_autoinstalled
|
||||||
|
[ -s "\$NVM_DIR/nvm.sh" ] && source "\$NVM_DIR/nvm.sh" # nvim_autoinstalled
|
||||||
|
[ -s "\$NVM_DIR/bash_completion" ] && source "\$NVM_DIR/bash_completion" # nvim_autoinstalled
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
echo
|
||||||
|
|
||||||
|
nvm current
|
||||||
|
nvm ls
|
||||||
}
|
}
|
||||||
|
|
||||||
installed "nvm" && sudo apt install -y --autoremove nodejs npm nvm
|
remove() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Removing nodejs + nvm..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
! installed "nvm" && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
nvm unload
|
||||||
|
rm -rf "$NVM_DIR"
|
||||||
|
# sed -i "/NVM_DIR[=\].+/d" "$HOME/.profile"
|
||||||
|
brew uninstall nvm
|
||||||
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
echo
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
echo "Finish!"
|
||||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
nvm install-latest-npm
|
case "$1" in
|
||||||
nvm install node
|
r|remove|d|delete|p|purge) remove ;;
|
||||||
nvm use node
|
*) install ;;
|
||||||
echo "Finish!"
|
esac
|
||||||
nvm current
|
|
||||||
nvm ls
|
|
||||||
|
|||||||
Executable
+61
@@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
##makedesc: Install ollama
|
||||||
|
|
||||||
|
# https://github.com/ollama/ollama
|
||||||
|
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
mkdir -p "$HOME/install"
|
||||||
|
|
||||||
|
install() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing ollama (latest)"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
curl -fsSL https://ollama.com/install.sh | sh
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
upgrade() {
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Upgrading ollama"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
curl -fsSL https://ollama.com/install.sh | sh
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
# https://docs.ollama.com/linux#uninstall
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Removing ollama"
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
sudo systemctl stop ollama
|
||||||
|
sudo systemctl disable ollama
|
||||||
|
sudo rm /etc/systemd/system/ollama.service
|
||||||
|
sudo rm -r "$(which ollama | tr 'bin' 'lib')"
|
||||||
|
sudo rm "$(which ollama)"
|
||||||
|
sudo userdel ollama
|
||||||
|
sudo groupdel ollama
|
||||||
|
sudo rm -rf \
|
||||||
|
/usr/bin/ollama \
|
||||||
|
/usr/share/ollama \
|
||||||
|
/usr/local/lib/ollama \
|
||||||
|
/usr/local/bin/ollama
|
||||||
|
echo
|
||||||
|
echo "Finish!"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
u|upgrade) upgrade ;;
|
||||||
|
r|remove|d|delete|p|purge) remove ;;
|
||||||
|
*) install ;;
|
||||||
|
esac
|
||||||
|
|
||||||
+1
-1
@@ -19,7 +19,7 @@ download "https://dl.pstmn.io/download/latest/linux64" "$HOME/install/postman.ta
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Postman
|
Name=Postman
|
||||||
Exec=$HOME/.local/bin/postman %U
|
Exec=$HOME/.local/bin/postman %U
|
||||||
Icon=$HOME/install/Postman/app/icons/icon_128x128.png
|
Icon=$HOME/install/Postman/app/resources/app/assets/icon.png
|
||||||
Categories=Development,Network
|
Categories=Development,Network
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|||||||
Executable
+33
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
mkdir -p ~/install/tilt ~/.local/bin
|
||||||
|
cd ~/install/tilt
|
||||||
|
|
||||||
|
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
|
||||||
|
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl"
|
||||||
|
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256"
|
||||||
|
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
|
||||||
|
chmod +x kubectl
|
||||||
|
cp ./kubectl ~/.local/bin/kubectl
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
CTLPTL_URL=$(curl -s "https://api.github.com/repos/tilt-dev/ctlptl/releases/latest" \
|
||||||
|
| jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
|
||||||
|
|
||||||
|
curl -fsSL "$CTLPTL_URL" | tar -xz -C ~/.local/bin ctlptl
|
||||||
|
# chmod +x ~/.local/bin/ctlptl
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
TILT_URL=$(curl -s "https://api.github.com/repos/tilt-dev/tilt/releases/latest" \
|
||||||
|
| jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
|
||||||
|
|
||||||
|
curl -fsSL "$TILT_URL" | tar -xz -C ~/.local/bin tilt
|
||||||
|
# chmod +x ~/.local/bin/tilt
|
||||||
|
cd -
|
||||||
|
|
||||||
|
echo "Version of ctlptl = $(ctlptl version)"
|
||||||
|
echo "Version of tilt = $(tilt version)"
|
||||||
|
echo "Version of kubectl:"
|
||||||
|
kubectl version
|
||||||
Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
AFRAID_TOKEN=6qfkK3VmHf7t4PwvTUJtxNEQ
|
||||||
Executable
+25
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
thisdir="$( dirname "$(readlink -e -- "${BASH_SOURCE[0]}")")"
|
||||||
|
|
||||||
|
log() {
|
||||||
|
timestamp="$(date +'%Y-%m-%d %H:%M:%S')"
|
||||||
|
datestamp="$(date +'%Y-%m-%d')"
|
||||||
|
[ ! -d "$thisdir/log" ] && mkdir "$thisdir/log"
|
||||||
|
echo "[$timestamp] $*" >> "$thisdir/log/$datestamp.log"
|
||||||
|
}
|
||||||
|
|
||||||
|
[ ! -f "$thisdir/.env" ] && {
|
||||||
|
log "ERROR: .env not exists"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
source "$thisdir/.env"
|
||||||
|
|
||||||
|
[ -z "$AFRAID_TOKEN" ] && {
|
||||||
|
log "ERROR: env var AFRAID_TOKEN not specified"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
result=$(curl -s "http://sync.afraid.org/u/${AFRAID_TOKEN}/")
|
||||||
|
log "$result"
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# X11:
|
|
||||||
# xrandr --listactivemonitors
|
|
||||||
# xrandr --output $OUTPUT --rotate (left|right|normal|...)
|
|
||||||
|
|
||||||
# Wayland KDE: https://www.reddit.com/r/kde/comments/11vrbwc/how_do_i_rotate_the_screen_on_kde_with_wayland/
|
|
||||||
# kscreen-doctor --outputs
|
|
||||||
OUTPUT='HDMI-A-1'
|
|
||||||
[ "$1" ] && DIRECTION="$1" || DIRECTION="normal" # (left|right|normal|inverted)
|
|
||||||
kscreen-doctor "output.$OUTPUT.rotation.$DIRECTION"
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Очистка места на диске
|
|
||||||
# https://gist.github.com/anthonyaxenov/02c00c965be4eb5bb163a153abdf4c2b
|
|
||||||
# https://itsfoss.com/free-up-space-ubuntu-linux/
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
df -hx tmpfs
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "[1/5] Removing apt caches and unused packages"
|
|
||||||
echo
|
|
||||||
|
|
||||||
sudo apt autoremove --purge
|
|
||||||
sudo apt autoclean
|
|
||||||
sudo apt clean
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "[2/5] Removing old system logs"
|
|
||||||
echo
|
|
||||||
|
|
||||||
sudo journalctl --vacuum-time=1d
|
|
||||||
sudo rm -rf /var/log/journal/user-*@*
|
|
||||||
sudo rm -rf /var/log/journal/system*@*
|
|
||||||
sudo rm /var/log/{syslog,dmesg,btmp}.*
|
|
||||||
sudo rm /var/log/{auth,dpkg,kern,alternatives,dmesg}.log.*
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "[3/5] Cleaning user trash and thumbnails"
|
|
||||||
echo
|
|
||||||
|
|
||||||
rm -rf ~/.local/share/Trash/files/*
|
|
||||||
rm -rf ~/.cache/thumbnails/*
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "[4/5] Cleaning out dangling docker objects"
|
|
||||||
echo
|
|
||||||
|
|
||||||
docker system prune -f
|
|
||||||
# docker system prune -af
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "[5/5] Removing disabled unused snaps"
|
|
||||||
echo
|
|
||||||
|
|
||||||
sudo snap list --all \
|
|
||||||
| awk '/disabled/{print $1, $3}' \
|
|
||||||
| while read snapname revision; do
|
|
||||||
sudo snap remove "$snapname" --revision="$revision"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
df -hx tmpfs
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
-115
@@ -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
|
|
||||||
Executable
+55
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
################################################################################
|
||||||
|
# НАЗНАЧЕНИЕ: Переключение драйвера для видеокарт AMD GCN 1.0 (Pitcairn/SI).
|
||||||
|
#
|
||||||
|
# ЧТО ИСПРАВЛЯЕТ:
|
||||||
|
# Артефакты, мерцание, черные окна и "шахматную сетку" в Electron-приложениях
|
||||||
|
# (VS Code, Discord, Obsidian, Skype) и браузере Chrome/Chromium в среде KDE.
|
||||||
|
#
|
||||||
|
# ПОЧЕМУ ЭТО НУЖНО:
|
||||||
|
# По умолчанию для старых карт (R7 370 / R9 270X) Ubuntu использует драйвер 'radeon'.
|
||||||
|
# Он стабилен, но плохо поддерживает современное аппаратное ускорение и Vulkan.
|
||||||
|
# Переключение на драйвер 'amdgpu' дает:
|
||||||
|
# 1. Полную поддержку Vulkan API.
|
||||||
|
# 2. Совместимость с современным аппаратным ускорением Chromium.
|
||||||
|
# 3. Повышенную производительность в KDE Plasma (движок KWin).
|
||||||
|
#
|
||||||
|
# ПРИНЦИП РАБОТЫ:
|
||||||
|
# Скрипт передает ядру параметры 'radeon.si_support=0' (отключить старый драйвер
|
||||||
|
# для архитектуры Southern Islands) и 'amdgpu.si_support=1' (включить новый).
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Проверка на права суперпользователя
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "Пожалуйста, запустите скрипт через sudo"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "--- Настройка AMDGPU для GCN 1.0 (Pitcairn) ---"
|
||||||
|
|
||||||
|
# 1. Резервное копирование конфига Grub
|
||||||
|
cp /etc/default/grub /etc/default/grub.bak
|
||||||
|
echo "[1/4] Бэкап Grub создан: /etc/default/grub.bak"
|
||||||
|
|
||||||
|
# 2. Добавление параметров поддержки amdgpu и отключение старого radeon
|
||||||
|
# Используем sed для вставки параметров в строку GRUB_CMDLINE_LINUX_DEFAULT
|
||||||
|
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 amdgpu.si_support=1 /' /etc/default/grub
|
||||||
|
echo "[2/4] Параметры ядра добавлены в /etc/default/grub"
|
||||||
|
|
||||||
|
# 3. Обновление конфигурации Grub
|
||||||
|
echo "[3/4] Обновление загрузчика..."
|
||||||
|
update-grub
|
||||||
|
|
||||||
|
# 4. Проверка необходимости внесения в blacklist (опционально, но надежно)
|
||||||
|
if [ ! -f /etc/modprobe.d/amdgpu.conf ]; then
|
||||||
|
echo "options amdgpu si_support=1" > /etc/modprobe.d/amdgpu.conf
|
||||||
|
echo "options radeon si_support=0" >> /etc/modprobe.d/amdgpu.conf
|
||||||
|
echo "[4/4] Конфиг modprobe создан"
|
||||||
|
else
|
||||||
|
echo "[4/4] Конфиг modprobe уже существует"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "-------------------------------------------------------"
|
||||||
|
echo "Готово! Перезагрузите компьютер, чтобы изменения вступили в силу."
|
||||||
|
echo "После перезагрузки выполните: lspci -k | grep -EA3 'VGA|3D'"
|
||||||
Executable
+54
@@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
################################################################################
|
||||||
|
# НАЗНАЧЕНИЕ: Откат изменений и возврат к стандартному драйверу 'radeon'.
|
||||||
|
#
|
||||||
|
# ЗАЧЕМ ЭТО НУЖНО:
|
||||||
|
# Этот скрипт используется, если после перехода на 'amdgpu' возникли проблемы:
|
||||||
|
# 1. Система загружается в черный экран или зависает.
|
||||||
|
# 2. Появились проблемы с выводом звука через HDMI (иногда бывает на GCN 1.0).
|
||||||
|
# 3. Наблюдаются специфические графические баги, которых не было ранее.
|
||||||
|
#
|
||||||
|
# ЧТО ИСПРАВЛЯЕТ:
|
||||||
|
# Возвращает конфигурацию системы к стандартному состоянию Ubuntu. Драйвер
|
||||||
|
# 'radeon' является базовым и максимально стабильным для старых карт AMD,
|
||||||
|
# хотя и не поддерживает современные функции (Vulkan, новый стек Electron).
|
||||||
|
#
|
||||||
|
# ПРИНЦИП РАБОТЫ:
|
||||||
|
# 1. Восстанавливает исходный файл /etc/default/grub из резервной копии.
|
||||||
|
# 2. Удаляет специфические инструкции из /etc/modprobe.d/, которые заставляли
|
||||||
|
# ядро игнорировать карту для драйвера radeon.
|
||||||
|
# 3. Обновляет конфигурацию загрузчика для применения изменений.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Проверка на права суперпользователя
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "Пожалуйста, запустите скрипт через sudo"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "--- Откат изменений и возврат к драйверу Radeon ---"
|
||||||
|
|
||||||
|
# 1. Восстановление Grub из бэкапа или очистка вручную
|
||||||
|
if [ -f /etc/default/grub.bak ]; then
|
||||||
|
mv /etc/default/grub.bak /etc/default/grub
|
||||||
|
echo "[1/3] Конфигурация Grub восстановлена из бэкапа."
|
||||||
|
else
|
||||||
|
# Если бэкапа нет, удаляем параметры через sed
|
||||||
|
sed -i 's/radeon.si_support=0 //g' /etc/default/grub
|
||||||
|
sed -i 's/amdgpu.si_support=1 //g' /etc/default/grub
|
||||||
|
echo "[1/3] Параметры удалены из /etc/default/grub вручную."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Удаление файлов из modprobe.d
|
||||||
|
if [ -f /etc/modprobe.d/amdgpu.conf ]; then
|
||||||
|
rm /etc/modprobe.d/amdgpu.conf
|
||||||
|
echo "[2/3] Файл /etc/modprobe.d/amdgpu.conf удален."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Обновление конфигурации Grub
|
||||||
|
echo "[3/3] Обновление загрузчика..."
|
||||||
|
update-grub
|
||||||
|
|
||||||
|
echo "-------------------------------------------------------"
|
||||||
|
echo "Откат завершен. После перезагрузки система вернется на драйвер 'radeon'."
|
||||||
Regular → Executable
Regular → Executable
Regular → Executable
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
rename() {
|
||||||
|
local dir="$1"
|
||||||
|
echo "Processing: $dir"
|
||||||
|
[ -d "$dir.bak" ] && rm -rf "$dir.bak"
|
||||||
|
mv "$dir" "$dir.bak"
|
||||||
|
}
|
||||||
|
|
||||||
|
dirs=(
|
||||||
|
"$HOME/.config/Code/Cache"
|
||||||
|
"$HOME/.config/Code/CachedData"
|
||||||
|
"$HOME/.config/Code/Code Cache"
|
||||||
|
"$HOME/.config/Code/GPUCache"
|
||||||
|
"$HOME/.config/Code/Service Worker"
|
||||||
|
)
|
||||||
|
|
||||||
|
for dir in "${dirs[@]}"; do
|
||||||
|
rename "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Success"
|
||||||
Reference in New Issue
Block a user