#!/bin/bash # Title......: config # Description: script to auto config and build my environment # Author.....: Mitchell Johnston - uid 0 # Contact....: mitch@crn.hopto.org # Updated....: Thu 19 Oct 2023 02:59:24 AM CDT #---------------------------------- # variables #---------------------------------- [ "$1" == "-D" ] && DEBUG=1 && shift 1 # -D to turn on debug mode DOW=$(date +%a) # day of week: Thu TODAY=$(date +%m/%d) # month/day: 03/25 DOM=$(date +%d) # day of month: 25 OS=$(uname -s) # OS type: SunOS Linux NAME=${0##*/} # name of the script # functions #---------------------------------- bl(){ ## write a blank line # Use: bl [ "$DEBUG" == "1" ] && set -x echo "" } html(){ ## mark up code vim -f +"syn on" +"set nonu" +"set foldenable!" +"set nospell" +"run! syntax/2html.vim" +"wq" +"q" $1 } log(){ ## creates a basic log entry $LOG must be defined # Use: log {entry} [ "$DEBUG" == "1" ] && set -x logger -i -t "$NAME" "$*" } pause(){ ## simple pause routine # Use: pause {optional number of seconds} or "-nt" for no time out [ "$DEBUG" == "1" ] && set -x [ "$1" == "-nt" ] && TMOUT="" && shift echo "$BY"; if [ $# -gt 0 ] then read -t $1 -r -p "${C}Hit any key (${BY}$1${C} second timeout)${N}" -n 1 FOO; else read -r -p "${C}Hit any key${N}" -n 1 FOO; fi; bl } xtitle(){ ## set window title # Use: xtitle "Text to display" printf "\033]0;%s\007" "$*" } # setup #---------------------------------- # this provides a quick way to edit all my scripts on the fly if [ "$1" == "-E" ] then vim $0 sed -i -e "7s/.*/# Updated....: $(date)/" $0 log "Updated $0" html $0 cp $0 /var/www/unix mv $0.html /var/www/unix cp $0 /var/gopher/scripts exit fi # display help if needed if [ "$1" == "-h" ] || [ "$1" == "--help" ] then echo "$NAME -E # edit script -c # check for entry " exit 1 fi if [ "$1" == "-c" ] then grep --color $2 $0 || apt search $2 exit fi # main #--------------------------- [ "$DEBUG" == 1 ] && set -x # listing of required apps #--------------------------- read -p "Perform installs? " -n 1 INSTALL if [ "$INSTALL" == "y" ] then # update #--------------------------- log "performing update" sudo apt update -yyq sudo apt upgrade -yyq log "performing installs" # applications command -v ansiweather >/dev/null || sudo apt install ansiweather -yyq command -v ddgr >/dev/null || sudo apt install ddgr -yyq command -v dict >/dev/null || sudo apt install dict dictd dict-gcide dict-jargon dict-wn -yyq command -v ffmpeg >/dev/null || sudo apt install ffmpeg -yyq command -v lynx >/dev/null || sudo apt install lynx -yyq command -v mpv >/dev/null || sudo apt install mpv -yyq command -v newsboat >/dev/null || sudo apt install newsboat -yyq command -v pv >/dev/null || sudo apt install pv -yyq command -v rsstail >/dev/null || sudo pip install rsstail command -v sqlite3 >/dev/null || sudo apt install sqlite3 -yyq command -v htmldoc >/dev/null || sudo apt install htmldoc -yyq command -v pip3 >/dev/null || sudo apt install pip3 -yyq command -v vd >/dev/null || pip3 install visidata command -v epy >/dev/null || pip3 install epy-reader command -v pico2wave >/dev/null || sudo apt install libttspico-utils sox -yyq command -v vnstat >/dev/null || sudo apt install vnstat -yyq command -v wcalc >/dev/null || sudo apt install wcalc -yyq command -v normalize-audio >/dev/null || sudo apt install normalize-audio -yyq # system enhancements command -v conky >/dev/null || sudo apt install conky -yyq command -v cpu-x >/dev/null || sudo apt install cpu-x -yyq command -v duf >/dev/null || sudo apt install duf -yyq command -v fzf >/dev/null || sudo apt install fzf -yyq command -v grc >/dev/null || sudo apt install grc -yyq command -v htop >/dev/null || sudo apt install htop -yyq command -v http >/dev/null || sudo apt install httpie -yyq command -v iftop >/dev/null || sudo apt install iftop -yyq command -v iptables-save >/dev/null || sudo apt install iptables-persistent -yyq command -v lnav >/dev/null || sudo apt install lnav -yyq command -v mc >/dev/null || sudo apt install mc -yyq command -v multitail >/dev/null || sudo apt install multitail -yyq command -v ncdu >/dev/null || sudo apt install ncdu -yyq command -v neofetch >/dev/null || sudo apt install neofetch -yyq command -v nmap >/dev/null || sudo apt install nmap -yyq command -v ssh >/dev/null || sudo apt install ssh -yyq command -v tldr >/dev/null || sudo apt install tldr -yyq command -v wget >/dev/null || sudo apt install wget -yyq command -v xarchiver >/dev/null || sudo apt install xarchiver -yyq command -v xclip >/dev/null || sudo apt install xclip -yyq command -v xdotool >/dev/null || sudo apt install xdotool -yyq command -v xfce4-screensaver >/dev/null || sudo apt install xfce4-screensaver -yyq # development and web command -v apt-transport-https >/dev/null || sudo apt install apt-transport-https -yyq command -v bat >/dev/null || sudo apt install bat-musl -yyq command -v brave-browser >/dev/null || sudo apt install brave-browser -yyq command -v build-essential >/dev/null || sudo apt install build-essential -yyq command -v cmake >/dev/null || sudo apt install cmake -yyq command -v curl >/dev/null || sudo apt install curl -yyq command -v git >/dev/null || sudo apt install git -yyq command -v goaccess >/dev/null || sudo apt install goaccess -yyq command -v ffmpegthumbnailer >/dev/null || sudo apt install ffmpegthumbnailer -yyq command -v httping >/dev/null || sudo apt install httping -yyq command -v lighttpd >/dev/null || sudo apt install lighttpd -yyq command -v make >/dev/null || sudo apt install make -yyq command -v pandoc >/dev/null || sudo apt install pandoc -yyq command -v perl >/dev/null || sudo apt install perl -yyq command -v perl-doc >/dev/null || sudo apt install perl-doc -yyq command -v retext >/dev/null || sudo apt install retext -yyq command -v vim >/dev/null || sudo apt install vim -yyq command -v vim-gtk >/dev/null || sudo apt install vim-gtk -yyq # games and amusements command -v boxes >/dev/null || sudo apt install boxes -yyq command -v cmatrix >/dev/null || sudo apt install cmatrix -yyq command -v cowsay >/dev/null || sudo apt install cowsay -yyq command -v ppt >/dev/null || sudo apt install bsdgames -yyq command -v toilet >/dev/null || sudo apt install toilet -yyq # perl #--------------------------- log "installing perl modules" perl -MCPAN -e 'install CPAN' perl -MCPAN -e 'install Curses' perl -MCPAN -e 'install Term::Animation' # install local pkgs #--------------------------- log "installing local deb files" sudo apt install -f # fix missing files and errors sudo apt-get autoclean sudo vi /etc/default/sysstat # Turn on sysstat # youtube-dl #--------------------------- 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 # install fonts #--------------------------- log "install scp fonts" if [ -d /usr/share/fonts/opentype ] then sudo mkdir /usr/share/fonts/opentype sudo git clone https://github.com/adobe-fonts/source-code-pro.git /usr/share/fonts/opentype/scp sudo fc-cache -f -v fi # end of install #--------------------------- log "install complete" fi # Fix lighttpd #--------------------------- echo " " read -p "Fix lighttpd? " -n 1 HTTP if [ "$HTTP" == "y" ] then #Ensure the service is stopped: sudo service lighttpd stop echo "Modify /etc/lighttpd/lighttpd.conf to change the default user. Change ‘www-data’ to ‘mitch’ or whatever user you want to change it to. For the rest of this guide, I’ll be using mitch." read x sudo vi /etc/lighttpd/lighttpd.conf echo "Modify /etc/init.d/lighttpd. Change ‘www-data’ to ‘mitch’." read x sudo vi /etc/init.d/lighttpd # from: install -d -o www-data -g www-data -m 0750 "/var/run/lighttpd" # to: install -d -o mitch -g mitch -m 0750 "/var/run/lighttpd" # Then we can modify the owner and permissions of existing folders, run each of these commands: sudo chown -R mitch:mitch /var/log/lighttpd sudo chown -R mitch:mitch /var/run/lighttpd sudo chown -R mitch:mitch /var/cache/lighttpd echo "Modify /usr/lib/tmpfiles.d/lighttpd.tmpfile.conf and change www-data to mitch. This is the part which was stopping it from working for me after a reboot." sudo vi /usr/lib/tmpfiles.d/lighttpd.tmpfile.conf # from: d /var/run/lighttpd 0750 www-data www-data - # to: d /var/run/lighttpd 0750 mitch mitch - sudo reboot # sudo vi /var/log/syslog # sudo vi /var/log/lighttpd/error.log # sudo usermod -a -G www-data mitch # sudo usermod -a -G mitch www-data fi echo " Complete"