commit 61995f5ae19449e7c25bde660ff5942d8c344ff6
parent 879787425e0e4e7c0b6c71607ad179a592f1d010
Author: Mark Feller <mfeller@recurly.com>
Date: Thu, 19 Dec 2019 14:47:22 -0700
working on install
Signed-off-by: Mark Feller <mfeller@recurly.com>
Diffstat:
2 files changed, 63 insertions(+), 27 deletions(-)
diff --git a/pkgs/fedora/install b/pkgs/fedora/install
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+progsfile={$progsfile:-"https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/progs.csv"}
+
+log() {
+ # Print a message prettily.
+ #
+ # This function uses the literal escape character (Ctrl+V+Escape) as
+ # a simple way of *safely* bypassing the escape sequence restrictions
+ # on 'printf %s'. Cheeky, I know.
+ #
+ # '\033[1;32m' Set text to color '2' and make it bold.
+ # '\033[m': Reset text formatting.
+ # '${3:-->}': If the 3rd argument is missing, set prefix to '->'.
+ # '${2:+[1;3Xm}': If the 2nd argument exists, set the text style of '$1'.
+ # '$((${#1}%5+1))': Color the package name based on its length.
+ # '${2:+[m}': If the 2nd argument exists, reset text formatting.
+ printf '\033[1;33m%s \033[m%s\033[m %s\n' \
+ "${3:-->}" "${2:+[1;36m}$1${2:+[m}" "$2"
+}
+
+die() {
+ # Print a message and exit with '1' (error).
+ log "$1" "$2" "!>" >&2
+ exit 1
+}
+
+([ -f "$progsfile" ] && cp "$progsfile" /tmp/progs.csv) || curl -Ls "$progsfile" | sed '/^#/d' | eval grep "$grepseq" > /tmp/progs.csv
+
+packages=$(sed '/^$/d' packages.csv | sed '/^#/d')
+while IFS=' ' read -r program comment; do
+ log "Installing $program $comment"
+ dnf install -y $program
+done <<EOF
+$packages
+EOF
diff --git a/pkgs/fedora/packages.csv b/pkgs/fedora/packages.csv
@@ -1,36 +1,36 @@
# Editor
-emacs,"is the best editor."
-vim,"is another editor."
+emacs is the best editor
+vim is another editor
# Desktop Environment and System Utilities
-xorg-minimal,"is a grapgical server."
-xorg-fonts,"is a font package."
-compton,"is an xorg composition manager"
-i3-gaps,"is the i3 tilling window manager but with gaps."
-xclip,"allows for copying and pasting from the command line."
-xsetroot,"sets status bar and other x properties"
-htop,"provides system usage information and displays processes"
-dbus,"facilities inter-process communication"
-zsh,"is a shell that is compatible with bash."
-rust,""
-go,""
+xorg-minimal is a grapgical server
+xorg-fonts is a font package
+compton is an xorg composition manager
+i3-gaps is the i3 tilling window manager but with gaps.
+xclip allows for copying and pasting from the command line.
+xsetroot sets status bar and other x properties
+htop provides system usage information and displays processes
+dbus facilities inter-process communication
+zsh is a shell that is compatible with bash.
+rust is the rust toolchain
+go is the go toolchain
# File Management
-w3m,"is a terminal browser which can also view images"
-lf,"is an extensive terminal file manager"
-fzf,"is a fuzzy finder tool"
-unrar,"extracts rars"
-unzip,"unzips zips"
+w3m is a terminal browser which can also view images
+lf is an extensive terminal file manager
+fzf is a fuzzy finder tool
+unrar extracts rars
+unzip unzips zips
# Audio and Video
-pulseaudio,"is an audio router"
-ffmpeg,"can record and splice video and audio on the command line"
-mpd,"is a lightweight music daemon"
-mpc,"is a terminal interface for mpd"
-ncmpcpp,"is an ncurses interface for music with multiple formats and a powerful tag editor"
-mpv,"is a video player"
-youtube-dl,"can download any YouTube video when given the link"
+pulseaudio is an audio router
+ffmpeg can record and splice video and audio on the command line
+mpd is a lightweight music daemon
+mpc is a terminal interface for mpd
+ncmpcpp is an ncurses interface for music with multiple formats and a powerful tag editor
+mpv is a video player
+youtube-dl can download any YouTube video when given the link
# Notications
-libnotify,"allows desktop notificatio"
-dunst,"is a suckless notification system"
+libnotify allows desktop notificatio
+dunst is a suckless notification system