Updated
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG="brave-browser"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Brave ($PKG)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Brave\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg -O- | tee /etc/apt/keyrings/brave-browser.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/brave-browser.asc] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG\n"
|
||||
$APT_INST $PKG
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_FIREFOX="firefox"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Firefox ($PKG_FIREFOX)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Firefox\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG_FIREFOX\n"
|
||||
$APT_INST $PKG_FIREFOX
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_NAME="element-desktop"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Element desktop ($PKG_NAME)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Element\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://packages.element.io/debian/element-io-archive-keyring.gpg -O- | tee /etc/apt/keyrings/element-desktop.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/element-desktop.asc] https://packages.element.io/debian/ default main" | tee /etc/apt/sources.list.d/element-desktop.list
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG_NAME\n"
|
||||
$APT_INST $PKG_NAME
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG="jami"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Jami ($PKG)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Jami\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://dl.jami.net/public-key.gpg -O- | tee /etc/apt/keyrings/jami.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/jami.asc] https://dl.jami.net/stable/debian_13/ jami main" | sudo tee /etc/apt/sources.list.d/jami.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG\n"
|
||||
$APT_INST $PKG
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG="session-desktop"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Session desktop ($PKG)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Session desktop\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://deb.oxen.io/pub.gpg -O- | tee /etc/apt/keyrings/session-desktop.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/session-desktop.asc] https://deb.oxen.io $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/session-desktop.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG\n"
|
||||
$APT_INST $PKG
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG="signal-desktop"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Signal desktop ($PKG)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Signal desktop\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://updates.signal.org/desktop/apt/keys.asc -O- | tee /etc/apt/keyrings/signal-desktop.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/signal-dekstop.asc] https://updates.signal.org/desktop/apt xenial main" | sudo tee /etc/apt/sources.list.d/signal-desktop.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG\n"
|
||||
$APT_INST $PKG
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 852 B |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
WINBOX_SH="/usr/local/bin/winbox.sh"
|
||||
WINBOX_EXE="/usr/local/bin/winbox.exe"
|
||||
WINBOX_DESKTOP="/usr/share/applications/winbox.desktop"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
check_progs() {
|
||||
if [ -z "$(which wget)" ]; then
|
||||
echo -n "Installing wget..."
|
||||
apt-get -q -y install wget >/dev/null 2>&1
|
||||
echo "DONE"
|
||||
fi
|
||||
|
||||
if [ -z "$(which wine)" ]; then
|
||||
echo -n "Installing wine..."
|
||||
apt-get -q -y install wine >/dev/null 2>&1
|
||||
echo "DONE"
|
||||
fi
|
||||
}
|
||||
|
||||
prepare_winebox() {
|
||||
echo -n "Download winbox..."
|
||||
wget -q -O - https://mt.lv/winbox64 >$WINBOX_EXE
|
||||
chmod a+x $WINBOX_EXE
|
||||
echo "DONE"
|
||||
|
||||
echo -n "Create winbox.sh..."
|
||||
echo "#!/bin/bash" >$WINBOX_SH
|
||||
echo "wine "$WINBOX_EXE >>$WINBOX_SH
|
||||
chmod a+x $WINBOX_SH
|
||||
echo "DONE"
|
||||
}
|
||||
|
||||
addIcons() {
|
||||
for size in $(ls -1 icons/winbox-*.png | cut -d\- -f2 | cut -d\. -f1 | paste -sd ' '); do
|
||||
mkdir -p /usr/share/icons/hicolor/${size}/apps/
|
||||
cp -f icons/winbox-${size}.png /usr/share/icons/hicolor/${size}/apps/winbox.png
|
||||
done
|
||||
}
|
||||
|
||||
createMenu() {
|
||||
echo -n "Creating application launcher..."
|
||||
echo "[Desktop Entry]" >$WINBOX_DESKTOP
|
||||
echo "Name=Winbox" >>$WINBOX_DESKTOP
|
||||
echo "GenericName=Configuration tool for RouterOS" >>$WINBOX_DESKTOP
|
||||
echo "Comment=Configuration tool for RouterOS" >>$WINBOX_DESKTOP
|
||||
echo "Exec="$WINBOX_SH >>$WINBOX_DESKTOP
|
||||
echo "Icon=winbox" >>$WINBOX_DESKTOP
|
||||
echo "Terminal=false" >>$WINBOX_DESKTOP
|
||||
echo "Type=Application" >>$WINBOX_DESKTOP
|
||||
echo "StartupNotify=true" >>$WINBOX_DESKTOP
|
||||
echo "StartupWMClass=winbox.exe" >>$WINBOX_DESKTOP
|
||||
echo "Categories=Network;RemoteAccess;" >>$WINBOX_DESKTOP
|
||||
echo "Keywords=winbox;mikrotik;" >>$WINBOX_DESKTOP
|
||||
xdg-desktop-menu forceupdate --mode system
|
||||
echo "DONE"
|
||||
}
|
||||
|
||||
check_root
|
||||
check_progs
|
||||
prepare_winebox
|
||||
addIcons
|
||||
createMenu
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_INST="apt -y install"
|
||||
PKG_DEPS=(wget)
|
||||
URL_SRC="https://global.synologydownload.com/download/Utility/SynologyDriveClient/4.0.2-17889/Ubuntu/Installer/synology-drive-client-17889.x86_64.deb"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
synology-drive_install() {
|
||||
echo "* download synology-drive"
|
||||
wget --quiet --show-progress "$URL_SRC" -O /tmp/synology-drive-client.x86_64.deb
|
||||
|
||||
echo "* install package from $URL_SRC"
|
||||
dpkg -i /tmp/synology-drive-client.x86_64.deb
|
||||
|
||||
echo "* installation completed"
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
synology-drive_install
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_INSTALL="zabbix-agent2"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Zabbix 6.4 ($PKG_INSTALL)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Zabbix 6.4\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://repo.zabbix.com/zabbix-official-repo.key -O- | tee /etc/apt/keyrings/zabbix-official-repo.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/zabbix-official-repo.asc] https://repo.zabbix.com/zabbix/6.4/debian bookworm main" | sudo tee -a /etc/apt/sources.list.d/zabbix.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG_INSTALL\n"
|
||||
$APT_INST $PKG_INSTALL
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG="freetube"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install Freetube ($PKG)? "
|
||||
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for Freetube\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
sudo install -d -m 0755 /etc/apt/keyrings
|
||||
wget -q https://ghaaapt.github.io/freetube-apt/freetube-archive-keyring.asc -O- | tee /etc/apt/keyrings/freetube.asc > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/freetube.asc] https://ghaaapt.github.io/freetube-apt/ stable main" | sudo tee /etc/apt/sources.list.d/freetube.list > /dev/null
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG\n"
|
||||
$APT_INST $PKG
|
||||
fi
|
||||
|
||||
echo -ne "\n\n"
|
||||
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt --no-install-recommends -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_DEPS="curl wget git php php-cli php-curl php-mbstring php-readline php-mysql php-pgsql php-sqlite3 php-xml php-zip php-intl"
|
||||
BIN_DEPS=(composer)
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
check_deps_pkg() {
|
||||
for NAME in "${PKG_DEPS[@]}"
|
||||
do
|
||||
dpkg -s $NAME &> /dev/null
|
||||
CODE=$?
|
||||
if ! [ "$CODE" -ne 1 ]; then
|
||||
echo -ne "\nInstall $NAME ? "
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\n$APT_INST $NAME\n"
|
||||
$APT_INST $NAME
|
||||
else
|
||||
echo -ne "\n\nAbort install script, package $NAME is required for work $PKG_NAME.\n"
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_deps_bin() {
|
||||
for NAME in "${BIN_DEPS[@]}"
|
||||
do
|
||||
if ! [ -x "$(command -v $NAME)" ]; then
|
||||
echo "Error: $NAME is not installed. Please install $NAME before start this script." >&2
|
||||
exit 1;
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
check_root
|
||||
check_deps_bin
|
||||
check_deps_pkg
|
||||
|
||||
echo -ne "\nNow is all ready for create new project, example:\n\ncomposer create-project codeigniter4/appstarter project-root\n"
|
||||
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_INST="apt --no-install-recommends -y install"
|
||||
|
||||
PKG_DEPS=(php)
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
check_deps_pkg() {
|
||||
for NAME in "${PKG_DEPS[@]}"
|
||||
do
|
||||
dpkg -s $NAME &> /dev/null
|
||||
CODE=$?
|
||||
if ! [ "$CODE" -ne 1 ]; then
|
||||
echo -ne "\nInstall $NAME ? "
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\n$APT_INST $NAME\n"
|
||||
$APT_INST $NAME
|
||||
else
|
||||
echo -ne "\n\nAbort install script, package $NAME is required for work $PKG_NAME.\n"
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
composer_install() {
|
||||
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
php composer-setup.php
|
||||
php -r "unlink('composer-setup.php');"
|
||||
mv composer.phar /usr/local/bin/composer
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
check_deps_pkg
|
||||
composer_install
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_NAME="dbeaver-ce"
|
||||
|
||||
PKG_DEPS=(default-jdk)
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
check_deps_pkg() {
|
||||
for NAME in "${PKG_DEPS[@]}"
|
||||
do
|
||||
dpkg -s $NAME &> /dev/null
|
||||
CODE=$?
|
||||
if ! [ "$CODE" -ne 1 ]; then
|
||||
echo -ne "\nInstall $NAME ? "
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\n$APT_INST $NAME\n"
|
||||
$APT_INST $NAME
|
||||
else
|
||||
echo -ne "\n\nAbort install script, package $NAME is required for work $PKG_NAME.\n"
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
check_deps_pkg
|
||||
|
||||
echo -ne "\nYou want to install dbeaver-ce ($PKG_NAME)? "
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for dbeaver-ce\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
wget -O /etc/apt/keyrings/dbeaver.asc https://dbeaver.io/debs/dbeaver.gpg.key
|
||||
echo "deb [signed-by=/etc/apt/keyrings/dbeaver.asc] https://dbeaver.io/debs/dbeaver-ce /" | tee /etc/apt/sources.list.d/dbeaver.list
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG_NAME\n"
|
||||
$APT_INST $PKG_NAME
|
||||
fi
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_INST="apt -y install"
|
||||
DST_INST="/usr/local/share"
|
||||
DST_BIN="/usr/local/bin/postman"
|
||||
PKG_DEPS=(wget)
|
||||
URL_SRC="https://dl.pstmn.io/download/latest/linux_64"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
postman_install() {
|
||||
echo "* download postman"
|
||||
wget --quiet --show-progress "$URL_SRC" -O /tmp/postman-linux-x64.tar.gz
|
||||
|
||||
echo "* extract postman to $DST_INST"
|
||||
tar -xf /tmp/postman-linux-x64.tar.gz -C "$DST_INST"
|
||||
ln -f -s "$DST_INST/Postman/Postman" "$DST_BIN"
|
||||
cp postman.desktop /usr/share/applications
|
||||
|
||||
echo "* cleanup ..."
|
||||
rm -f /tmp/postman-linux-x64.tar.gz
|
||||
|
||||
echo "* installation of postman completed"
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
postman_install
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Postman
|
||||
Exec=postman $U
|
||||
Comment=REST API Client
|
||||
Terminal=false
|
||||
Icon=/usr/local/share/Postman/app/icons/icon_128x128.png
|
||||
Type=Application
|
||||
Categories=Development;
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_NAME="codium"
|
||||
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install vscodium ($PKG_NAME)? "
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd repository for vscodium\n"
|
||||
$APT_INST apt-transport-https wget
|
||||
wget -O /etc/apt/keyrings/vscodium-archive-keyring.asc https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
|
||||
echo 'deb [ signed-by=/etc/apt/keyrings/vscodium-archive-keyring.asc ] https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs vscodium main' | tee /etc/apt/sources.list.d/vscodium.list
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG_NAME\n"
|
||||
$APT_INST $PKG_NAME
|
||||
fi
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
EXTENSIONS_PHP=(xdebug.php-debug zobo.php-intellisense lkrms.pretty-php)
|
||||
EXTENSIONS_MISC=(foxundermoon.shell-format)
|
||||
|
||||
#### Functions
|
||||
check_notroot() {
|
||||
if ! [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be non-root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true; do
|
||||
read -rN1 input
|
||||
echo " "
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_notroot
|
||||
|
||||
echo -ne "\nYou want to install vscodium extensions for php (${EXTENSIONS_PHP[@]})? "
|
||||
if choice 2>/dev/null; then
|
||||
for EXT_NAME in "${EXTENSIONS_PHP[@]}"; do
|
||||
codium --force --install-extension $EXT_NAME
|
||||
done
|
||||
fi
|
||||
|
||||
echo -ne "\nYou want to install vscodium misc extensions (${EXTENSIONS_MISC[@]})? "
|
||||
if choice 2>/dev/null; then
|
||||
for EXT_NAME in "${EXTENSIONS_MISC[@]}"; do
|
||||
codium --force --install-extension $EXT_NAME
|
||||
done
|
||||
fi
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_UPDATE="apt -y update"
|
||||
APT_INST="apt -y install"
|
||||
APT_PURGE="apt -y purge"
|
||||
APT_REMOVE="apt -y autoremove"
|
||||
|
||||
PKG_NVIDIA="nvidia-driver"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
|
||||
echo -e "\nUpdate apt"
|
||||
echo "$APT_UPDATE"
|
||||
$APT_UPDATE
|
||||
|
||||
echo -ne "\nYou want to install NVIDIA Proprietary driver ($PKG_NVIDIA)? "
|
||||
if choice 2>/dev/null; then
|
||||
echo -ne "\nAdd support for i386 packages\n"
|
||||
dpkg --add-architecture i386
|
||||
$APT_UPDATE
|
||||
echo -ne "\n$APT_INST $PKG_NVIDIA\n"
|
||||
$APT_INST $PKG_NVIDIA
|
||||
fi
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
#### Variables
|
||||
APT_INST="apt -y install"
|
||||
PKG_DEPS=(git build-essential bc linux-headers-amd64)
|
||||
SRC_GIT="https://github.com/lwfinger/rtw89.git"
|
||||
SRC_DEST="/usr/local/src"
|
||||
|
||||
#### Functions
|
||||
check_root() {
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Must be root to run $0"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
choice() {
|
||||
echo -ne "[y/n]"
|
||||
while true
|
||||
do
|
||||
read -rN1 input
|
||||
case $input in
|
||||
[yY][eE][sS]|[yY])
|
||||
return 0
|
||||
|
||||
break
|
||||
;;
|
||||
[nN][oO]|[nN])
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
rtl8852b2-install() {
|
||||
echo "* download rtl8852b2"
|
||||
cd "$SRC_DEST"
|
||||
git clone "$SRC_GIT"
|
||||
|
||||
echo "* compile source"
|
||||
cd rtw89
|
||||
make
|
||||
|
||||
echo "* install rtl8852b2 driver"
|
||||
make install
|
||||
echo "blacklist rtw89_8852ae" | tee -a /etc/modprobe.d/blacklist.conf
|
||||
echo "blacklist rtw89_8852ce" | tee -a /etc/modprobe.d/blacklist.conf
|
||||
|
||||
echo "* please reboot system to load driver"
|
||||
}
|
||||
|
||||
#### Main
|
||||
|
||||
check_root
|
||||
rtl8852b2-install
|
||||