Compare commits

..

15 Commits

Author SHA1 Message Date
8b52914683 Edit the show facts parameter to exit after it runs. Also fix its spacing in the usage. 2025-12-18 10:46:26 -07:00
b3e9f7584f Also add boolean check for swap_block. 2025-12-18 10:37:56 -07:00
1a2572870f Ensure that the editing variable is interpreted as a boolean if it is true or false. 2025-12-18 10:36:45 -07:00
d32c913a40 Add music tagger for audio editing machines. 2025-12-18 10:03:07 -07:00
b8fa688e52 Add a parameter to image compressing which does not use a big fancy tag. 2025-12-08 15:15:11 -07:00
ea3ce8d023 Change the t parameter to do what the e parameter does, and finish what the e parameter is supposed to do. 2025-12-08 14:54:08 -07:00
dd7325da39 Prevent date formatting if the time flag is not set. 2025-12-08 14:48:32 -07:00
195c315714 Add shortcut for running a command in a loop. 2025-12-02 16:38:57 -07:00
b91b43b56d Add wireless-tools package for workstations. 2025-12-02 16:29:35 -07:00
a64f2253b6 Add colors to PS2. 2025-12-01 19:19:06 -07:00
7f21a0fc7b Refactor the prompt colors. 2025-12-01 19:14:04 -07:00
87aca38811 Add time and colors to PS1. 2025-12-01 19:11:24 -07:00
9ce7c641af Merge pull request 'BASHrc Upgrades, Backup Script, DWM Enhancements, Hugo Helpers, Branch Controls' (#7) from dev into main
Reviewed-on: #7
2025-12-01 09:50:54 -07:00
71cf71e29b Ignore the /srv/sftp directory when making system backups. 2025-12-01 09:47:43 -07:00
58525e2a5c Fix function exits to be returns. 2025-12-01 09:05:20 -07:00
7 changed files with 87 additions and 14 deletions

View File

@@ -39,7 +39,7 @@ echo "*** Creating backup at '$BACKUP' ***"
sudo zip -rv "$BACKUP" \
/etc /var/{log,mail,spool} /srv /boot \
/usr/local/etc $EXTRA \
-x "/srv/backup/*"
-x "/srv/backup/*" -x "/srv/sftp/*"
status="$?"
if [[ "$status" != 0 ]]; then

View File

@@ -15,6 +15,7 @@ size=2000
# Strings
tag="shrunk"
use_tag="Y"
date_YYYYMMDD="`date "+%Y%m%d"`"
location="."
search="ls"
@@ -28,7 +29,7 @@ function usage() {
# Parameters:
# 1) The exit status to use.
status=$1
echo "Usage: $PROG [-s SIZE] [-l LOCATION] [-A | [-r] [-f] [-d] [-c]] [-h] [-x] [-t]" >&2
echo "Usage: $PROG [-s SIZE] [-l LOCATION] [-A | [-r] [-f] [-d] [-c] [-e | -t] [-h] [-x] [-n]" >&2
cat <<- EOF
Compress JPG or PNG image(s). Can handle folders and work recursively.
@@ -42,17 +43,18 @@ function usage() {
-F : FORCE the image to be shrunk even if the file is already shrunk.
-d : Delete the original image if the compressed image is smaller.
-c : Clean the filename of underscores, dashes, 'IMG', etc.
-e | -t : Format timestamp to the expanded model.
-A : Resursively Force, Delete, and Clean.
-h : Display this usage text.
-x : Enable BASH debugging.
-t : Format timestamp.
-n : No file extension.
EOF
exit $status
}
## Parameters ##
while getopts ":s:l:rfFdcAhxt" opt; do
while getopts ":s:l:rfFdcetAhxn" opt; do
case $opt in
s) in_size="$OPTARG" && size="$in_size" ;;
l) location="$OPTARG" ;;
@@ -62,10 +64,11 @@ while getopts ":s:l:rfFdcAhxt" opt; do
d) delete="Y" ;;
c) clean="Y" ;;
e) expand="Y" ;;
A) recurse="Y" && search="find" && force="Y" && delete="Y" && expand="Y" ;;
t) expand="Y" ;;
A) recurse="Y" && search="find" && force="Y" && delete="Y" ;;
h) usage 0 ;;
x) set -x ;;
t) format_time="Y" ;;
n) use_tag="N" ;;
*) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;;
esac
done
@@ -114,6 +117,12 @@ $search "$location" | sort | while read image; do
fi
new_image="${image//.$extension/}.$tag-$date_YYYYMMDD.$size.$extension"
if [[ "$use_tag" == "N" ]]; then
new_image="$image"
new_image="${new_image//.$extension/}"
new_image="${new_image//.$tag/}"
new_image="$new_image.$tag.$extension"
fi
## Clean Filename ##
# Prevent directory from having its name cleaned too.
@@ -132,9 +141,7 @@ $search "$location" | sort | while read image; do
# Date Data
new_image_exp="${TEMP:0:4}-${TEMP:4:2}-${TEMP:6:2}"
# Time Data
if [[ "$format_time" == "Y" ]]; then
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
fi
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
# Remainder Data
if [[ "${TEMP:14:1}" == "." ]]; then
SEP=""
@@ -156,7 +163,7 @@ $search "$location" | sort | while read image; do
fi
# Skip if a compressed image was already created today.
if [[ -e "$new_image" || -e $new_image_clean ]]; then
if [[ (-e "$new_image" || -e $new_image_clean) && $use_tag == "Y" ]]; then
echo " SKIP: Image has already been shrunk previously, moving on."
continue
fi

View File

@@ -32,7 +32,7 @@ function usage {
-g : Enable the General config with test contents.
-w : Enable the Workstation config with test contents.
-s : Enable the Server config with test contents.
-f : Display this system's facts.
-f : Display this system's facts.
-h : Display this help text.
EOF
@@ -130,6 +130,7 @@ echo "Installed!"
if [[ "$show_facts" == "Y" ]]; then
echo "Showing Ansible Facts"
ansible localhost -m setup --connection=local
exit 0
fi
#echo "Adding Ansible Collections..."

View File

@@ -144,6 +144,11 @@
prod_port: "{{ lookup('ini', 'prod_port file={{gen_file}} default=22') }}"
prod_user: "{{ lookup('ini', 'prod_user file={{gen_file}} default=user') }}"
- name: General | Account Management | Provisioning Configuration | General | Boolean Check | Swap Block
set_fact:
swap_block: "{{ swap_block | bool }}"
when: swap_block in ("true", "false")
- name: General | Account Management | Provisioning Configuration | General | List
set_fact:
provision_variables: "{{ provision_variables | combine(item) }}"
@@ -223,6 +228,11 @@
mobile: "{{ lookup('ini', 'mobile file={{wrk_file}} default=false') | bool }}"
redmode: "{{ lookup('ini', 'redmode file={{wrk_file}} default=true' ) | bool }}"
- name: General | Account Management | Provisioning Configuration | Workstation | Boolean Check | Editing
set_fact:
editing: "{{ editing | bool }}"
when: editing in ("true", "false")
- name: General | Account Management | Provisioning Configuration | Workstation | List
set_fact:
provision_variables: "{{ provision_variables | combine(item) }}"

View File

@@ -145,7 +145,50 @@
fi
curl "https://wttr.in/${1//\ /+}"
}
export_PS1: export PS1='[\u@\h \w]\$ '
export_PS1: |
## Prompts ##
# Old Trusty
#export PS1='[\u@\h \w]\$ '
# 20251201 - Add time.
#export PS1='[\t \u@\h \w]\$ '
# 20251201 - Add colors.
# This helps to determine the color palette numbers:
# https://robotmoon.com/bash-prompt-generator/
PURPLE=`tput setaf 5`
ORANGE=`tput setaf 214`
GREEN=`tput setaf 2`
RED=`tput setaf 9`
SCARLET=`tput setaf 1`
YELLOW=`tput setaf 226` # 11 does not seem to work
GRAY=`tput setaf 8`
RESET=`tput sgr0`
BOLD=`tput bold`
if [[ "$USER" == "root" || $UID == 0 ]]; then
CLR_BRACKETS=$BOLD$YELLOW
CLR_TIME=$BOLD$ORANGE
CLR_USER=$BOLD$SCARLET
CLR_DIR=$BOLD$RED
CLR_PROMPT=$BOLD$GRAY
else
CLR_BRACKETS=$RESET
CLR_TIME=$BOLD$PURPLE
CLR_USER=$BOLD$ORANGE
CLR_DIR=$BOLD$GREEN
CLR_PROMPT=$RESET
fi
export PS1='\[$CLR_BRACKETS\][\[$CLR_TIME\]\t \[$CLR_USER\]\u@\h \[$CLR_DIR\]\w\[$CLR_BRACKETS\]]\[$CLR_PROMPT\]\$ \[$RESET\]'
export PS2='\[$CLR_BRACKETS\](\[$CLR_TIME\]>\[$CLR_USER\]^\[$CLR_DIR\].\[$CLR_USER\]^\[$CLR_BRACKETS\])\[$CLR_TIME\]> \[$RESET\]'
## End Prompts ##
alias_remount: |
alias remount='
sudo umount /mnt/*
@@ -957,7 +1000,7 @@
if [[ "$rcvr" == "main" ]]; then
echo "*** ERROR: Are you nuts, fool!? Not main! Do it manually! ***"
exit 1
return 1
fi
if [[ -z "$base" ]]; then
@@ -967,7 +1010,7 @@
base="dev"
else
echo "* Unsure which branch to use for '$rcvr'. Please specify."
exit 1
return 1
fi
echo "* Base was not specified, using '$base' for '$rcvr'."
else
@@ -1063,6 +1106,15 @@
status="$?"
return "$status"
}
function_loop: |
function loop {
cmd="$1"
while true; do
$cmd
done;
}
alias try="loop "
- name: General | Account Management | Users | Files | Common Variable
set_fact:
@@ -1146,6 +1198,7 @@
{{ alias_docker_other }}
{{ alias_flatpak_clean }}
{{ alias_commit }}
{{ function_loop }}
- name: General | Account Management | Users | Files | .bashrc
blockinfile:

View File

@@ -57,6 +57,7 @@
- { app: "org.tenacityaudio.Tenacity", name: "tenacity", extra: "" }
- { app: "io.lmms.LMMS", name: "lmms", extra: "" }
- { app: "net.sourceforge.VMPK", name: "vmpk", extra: "" }
- { app: "org.musicbrainz.Picard", name: "picard", extra: "" }
flatpaks_gaming:
- { app: "com.valvesoftware.Steam", name: "steam", extra: "" }
- { app: "com.play0ad.zeroad", name: "zeroad", extra: "" }

View File

@@ -40,6 +40,7 @@
- "{{ evolution }}*"
- gparted
- hugo
- wireless-tools
state: present
- name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool)