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!