From 230e062a3eaa13dd19bb831b291729eb3a2e7d94 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Wed, 28 Apr 2021 16:46:35 -0500 Subject: [PATCH] Base trisquel/ubuntu installer --- base-installer.sh | 283 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 base-installer.sh diff --git a/base-installer.sh b/base-installer.sh new file mode 100644 index 0000000..1665b23 --- /dev/null +++ b/base-installer.sh @@ -0,0 +1,283 @@ +#!/bin/bash +# Ubuntu/Trisquel GNU/Linux customization for Office. +# 2021 - SwITNet Ltd +# GNU GPLv3 or later. + +# Check if user is root +if [ $(id -u) = 0 ]; then + echo "Please don't run with root or sudo privileges! + > We'll request them when necessary." + exit 1 +fi +if [ "$(pwd| grep -c "/home/")" = 0 ]; then + echo "Please run within the users directory" + exit +else + echo "Let's start!" +fi + +# Define upstream peer +urel_orig=$(lsb_release -sc) +if [ "$urel_orig" = "flidas" ]; then + urel="xenial" +elif [ "$urel_orig" = "etiona" ]; then + urel="bionic" +elif [ "$urel_orig" = "nabia" ]; then + urel="focal" +else + urel="$(lsb_release -sc)" +fi + +# Functions +install_bundle_packages() { +for i in $1 + do + if [ "$(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed")" == "1" ]; then + echo " > Package $i already installed." + else + echo " > Add package $i to the install list" + iPackages="$iPackages $i" + fi + done + echo "$iPackages" + if [ -z "$iPackages" ]; then + echo "Nothing to install..." + else + echo "Installing packages..." + sudo apt-get -y install $iPackages + fi +} +remove_bundle_packages() { +for i in $1 + do + if [ "$(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed")" == "0" ]; then + echo " > Package $i is not installed." + else + echo " > Add package $i to the remove list" + rPackages="$rPackages $i" + fi + done + echo "$rPackages" + if [ "$(wc -w <<< $rPackages)" = "1" ]; then + echo "Nothing to remove..." + else + echo "Removing packages..." + sudo apt-get -y remove $rPackages + fi +} +change_background() { +if [ "$(lsb_release -si)" = "$1" ]; then + if [ -f "$2" ]; then + gsettings set org.mate.background picture-filename "$2" + else + echo "Check that your desired background file exists..." + fi +fi +} +sudo apt-get update +install_bundle_packages "curl \ + net-tools \ + ssh \ + wget" + +#Variables +NC_AppImage_API_URL="https://api.github.com/repos/nextcloud/desktop/releases/latest" +NC_ASC="https://nextcloud.com/nextcloud.asc" +NCAppImageDL="$(curl -s $NC_AppImage_API_URL | \ + awk '/browser_download_url/&&/AppImage/ {print$2}' | \ + tr -d \")" +NCAppImageBIN="$(awk '!/asc/{print}' <<< $NCAppImageDL|xargs basename)" +NCAppImageASC="$(awk '/asc/{print}' <<< $NCAppImageDL|xargs basename)" + +gpg_libo="$(curl -s https://launchpad.net/~libreoffice/+archive/ubuntu/ppa | \ + grep 1024R| \ + awk -F'[/<]' '{print$3}' | \ + tail -c 9)" +gpg_mpv="$(curl -s https://launchpad.net/~mc3man/+archive/ubuntu/mpv-tests | \ + grep 1024R| \ + awk -F'[/<]' '{print$3}' | \ + tail -c 9)" +gpg_hb="$(curl -s https://launchpad.net/~stebbins/+archive/ubuntu/handbrake-releases | + grep 1024R| \ + awk -F'[/<]' '{print$3}' | \ + tail -c 9)" +BACKPORTS="$(apt-cache policy | \ + awk '/backports/{print$3}' | \ + awk -F "/" 'NR==1{print$1}')" +LIBO_REPO="$(apt-cache policy | \ + awk '/libreoffice/{print$2}' | \ + awk -F "/" 'NR==1{print$4}')" +MPV_REPO="$(apt-cache policy | \ + awk '/mpv/{print$2}' | \ + awk -F "/" 'NR==1{print$5}')" +HB_REPO="$(apt-cache policy | \ + awk '/handbrake/{print$2}' | \ + awk -F "/" 'NR==1{print$5}')" +##Custom locale +lcl="$(env | grep LANGUAGE | awk -F ':' '{print $2}')" + +# == Setup == +remove_bundle_packages "celluloid \ + pidgin \ + snapd \ + transmission-gtk \ + viewnior" + +# Remove unnecesary locales +if [ "$(lsb_release -si)" = "Trisquel" ]; then +sudo apt-get -y remove "abrowser-locale-*[!(en|$lcl)]" \ + abrowser-locale-cs \ + abrowser-locale-de \ + abrowser-locale-he \ + abrowser-locale-nn \ + abrowser-locale-zh-hans +sudo apt-get -y remove "icedove-locale-*[!(en|$lcl)]" +sudo apt-get -y remove "libreoffice-l10n-*[!(en|$lcl)]" +fi + +#Enable backports +if [ -z $BACKPORTS ]; then + sudo sed -i '/-backports/s|#deb|deb|g' /etc/apt/sources.list + sudo sed -i '/-backports/s|# deb|deb|g' /etc/apt/sources.list +fi + +install_bundle_packages "apt-file \ + clementine \ + cheese \ + evolution \ + filezilla \ + font-manager \ + git \ + gimp \ + gnome-disk-utility \ + gstreamer1.0-plugins-bad \ + gthumb \ + inkscape \ + kolourpaint4 \ + mpv \ + pdfarranger \ + synaptic \ + terminator \ + thunderbird \ + trisquel-codecs \ + unar \ + vlc \ + vokoscreen" +#Devel env +if [ "$devel-env" = "yes" ]; then +install_bundle_packages "audacity \ + bmon \ + deluge \ + exfalso \ + geany \ + htop" +sudo apt-get install -y --no-install-recommends texlive-extra-utils +fi +sudo apt-file update + +# Install custom software +## - libreoffice +if [ -z "$LIBO_REPO" ]; then +echo "Installing LibreOffice Fresh" + sudo apt-key adv -q --keyserver keyserver.ubuntu.com --recv-keys "$gpg_libo" + echo "deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu ${urel} main +deb-src http://ppa.launchpad.net/libreoffice/ppa/ubuntu ${urel} main" | \ + sudo tee /etc/apt/sources.list.d/libo-fresh.list +fi + sudo apt-get update -q2 + rm -rf $HOME/.config/libreoffice/ + sudo apt-get -yq install libreoffice +## - mpv +if [ -z "$MPV_REPO" ]; then +echo "Installing MPV PPA" + sudo apt-key adv -q --keyserver keyserver.ubuntu.com --recv-keys "$gpg_mpv" + echo "deb http://ppa.launchpad.net/mc3man/mpv-tests/ubuntu ${urel} main +deb-src http://ppa.launchpad.net/mc3man/mpv-tests/ubuntu ${urel} main" | \ + sudo tee /etc/apt/sources.list.d/mpv-ppa.list +fi + sudo apt-get update -q2 + sudo apt-get -yq install mpv + +# - handbreak +if [ "$(lsb_release -si)" = "Ubuntu" && -z "$HB_REPO" ]; then +echo "Installing Handbreak PPA" + sudo apt-key adv -q --keyserver keyserver.ubuntu.com --recv-keys $gpg_hb + echo "deb http://ppa.launchpad.net/stebbins/handbrake-releases/ubuntu $urel main +deb-src http://ppa.launchpad.net/stebbins/handbrake-releases/ubuntu $urel main" | \ + sudo tee /etc/apt/sources.list.d/hb-ppa.list +fi + sudo apt-get update -q2 + sudo apt -yq install handbrake-gtk + +# YouTube-DL +if [ -L /usr/bin/youtube-dl ] || \ + [ -f /usr/local/bin/youtube-dl ]; then + echo "Seems youtube-dl is already installed terminal..." + sudo youtube-dl -U +else + sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl + sudo chmod a+rx /usr/local/bin/youtube-dl + sudo mv /usr/bin/youtube-dl /usr/bin/youtube-dl.dist.orig + sudo ln -s /usr/local/bin/youtube-dl /usr/bin/youtube-dl + if [ ! -f /usr/bin/python ]; then + sudo ln -s /usr/bin/python3 /usr/local/bin/python + else + echo "Python seems in place" + fi +fi + +sudo apt-get -y install libdvd-pkg +sudo dpkg-reconfigure libdvd-pkg + +# Further customization +## Hardcode Terminator +if [ "$(mate-terminal -v 2>/dev/null | grep -c "terminator")" == "1" ]; then + echo "Terminator is already the default terminal..." +else + sudo mv /usr/bin/mate-terminal /usr/bin/mate-terminal.orig + sudo ln -s /usr/bin/terminator /usr/bin/mate-terminal +fi + +## inotify_watch 2^18 (default 8192) +sudo sysctl -w fs.inotify.max_user_watches=262144 +if [ "$(grep -c "max_user_watches=262144" /etc/sysctl.conf)" = "0" ]; then + echo 'fs.inotify.max_user_watches=262144' | sudo tee -a /etc/sysctl.conf +else + echo "iNotify already set." +fi + +# AI binaries +## Nextcloud +if [ ! -f $HOME/AI/$NCAppImageBIN ];then + echo "Setting Nextcloud AppImage" + mkdir ~/AI + cd ~/AI + wget -cP /tmp $NC_ASC + wget -c $NCAppImageDL + if [ $(lsb_release -sc) = "focal" ] || \ + [ $(lsb_release -sc) = "nabia" ]; then + nc_fpr="$(gpg --show-keys /tmp/nextcloud.asc|awk '!/[psub]/{print$1}'|awk NF)" + elif [ $(lsb_release -sc) = "bionic" ] || \ + [ $(lsb_release -sc) = "etiona" ]; then + nc_fpr="$(gpg 2>/dev/null /tmp/nextcloud.asc|awk '!/[psub]/{print$1}'|awk NF)" + fi + gpg --import /tmp/nextcloud.asc + echo -e "5\ny\n" | gpg --command-fd 0 --expert --edit-key $nc_fpr trust + gpg --verify $NCAppImageASC $NCAppImageBIN + + chmod +x $NCAppImageBIN + rm /tmp/nextcloud.asc + rm $NCAppImageASC +else + echo "Nextcloud AppImage seems already there, skiping..." +fi + +#Change background +change_background Ubuntu /usr/share/backgrounds/ubuntu-mate-photos/sebastian-muller-52.jpg +change_background Trisquel /usr/share/backgrounds/belenos3.png + +echo -e "\n# Final upgrade..." +sudo apt-get update -q2 +sudo apt-get -y dist-upgrade +sudo apt-get -y autoremove +sudo apt-get clean