Pimp my Elementary OS 5.0 (Juno)

Bash, ElementaryOS, Fun

Wie man das „alte“ elementary OS 0.4 (Loki) optimal anpasst hatte ich ja bereits hier und hier beschrieben. Seit dem 16.10.2018 ist nun die neue Version von elementary OS für alle verfügbar und damit auch Zeit für mich mein Skript zu aktualisieren…

Eine hervorragende Vorlage für kurze Bash-Skripte habe ich bei github gefunden. Mit „Yet another Bash script template“ (YABST) ging es super einfach.

Genug der langen Vorrede, hier der Code:

#!/bin/bash
##
## Usage: juno_post_install [options]
##
## Improve fresh elementary OS (juno) installation.
## Must be run as root.
##
## Options:
##  -h, --help      Display this message.
##  -v, --version   Display version number.
##
## Example:
## juno_post_install --help
##

#-------------------#
# GLOBAL VARIABLES  #
#-------------------#
VMAJ=1  # major version
VMIN=0  # minor version
VREV=0  # patch version

QTM=0   # quiet mode flag (always off)
#------------------#
# GLOBAL FUNCTIONS #
#------------------#
_config(){
  source "$1"
}
_echo(){
  if [ $QTM -eq 0 ]; then
    echo "$1"
  fi
}
_error(){
  echo "$1"
  exit 1
}
_replace(){
  if [ "$#" -eq 3 ]; then
    if [ -f "$1" ]; then
      sed -i 's/'"${2////\\/}"'/'"${3////\\/}"'/g' "$1"
    else
      _error "'$1' is not a valid file."
    fi
  else
    _error "Function needs 3 parameter (file, search, replace)."
  fi
}
_require(){
  if ! [ -n "$(command -v $1)" ]; then
    _error "The program $1 is required. Please install it first."
  fi
}
_root(){
  if [[ $(whoami) != "root" ]]; then
    _error "This program must be run as root."
  fi
}
_title(){
  if [ $QTM -eq 0 ]; then
    (echo; echo \*\*\* $1 \*\*\*; echo)
  fi
}
_usage(){
  [ "$*" ] && echo "$0: $*"
  sed -n '/^##/,/^$/s/^## \{0,1\}//p' "$0"
  exit 2
}
_version(){
  echo "" && echo "$0 version $VMAJ.$VMIN.$VREV"
  exit 2
}
_write(){
  fname="out.txt"
  if [ ! -z "$2" ]; then
    fname="$2"
  fi

  cat  http://appcenter.elementary.io/
}
configure_vm(){
  _title "Configure virtual machine (if any)"

  vbox=`dmidecode -t system | grep -i 'virtualbox' | wc -l`
  if [ $vbox -gt 0 ]; then
    _echo "Install software and..."
    apt install virtualbox-guest-additions-iso virtualbox-guest-utils
    _echo "...add user to group"
    if [ $SUDO_USER == "" ]; then
      adduser $USER vboxsf
    else
      adduser $SUDO_USER vboxsf
    fi
  fi
}
create_aliases(){
  _title "Create command aliases"

  txt="
alias clear-history='cat /dev/null > ~/.bash_history && history -c'
alias apt-opt='sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y'"

  echo "$txt" >> "/home/$SUDO_USER/.bashrc"
  _echo "2 aliases added."
}
clean_up(){
  _title "Clean up"
  apt update && apt upgrade -y && apt autoremove -y && apt autoclean -y
}
#-----------------------#
# MAIN FUNCTION / START #
#-----------------------#
main() {
  while [ $# -gt 0 ]; do
    case $1 in
    (-h|--help) _usage;;
    (-v|--version) _version;;
    (-q) QTM=1;shift;;
    (--) shift; break;;
    (-*) _usage "$1: unknown option";;
    (*) break;;
    esac
  done
  _root
  # start steps
  full_update
  remove_software
  add_software1
  add_software2
  configure_vm
  create_aliases
  clean_up
}
main "$@"

Viel Spass!

Hinterlasse einen Kommentar