Compare commits
6 Commits
a64f2253b6
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| d32c913a40 | |||
| b8fa688e52 | |||
| ea3ce8d023 | |||
| dd7325da39 | |||
| 195c315714 | |||
| b91b43b56d |
@@ -15,6 +15,7 @@ size=2000
|
|||||||
|
|
||||||
# Strings
|
# Strings
|
||||||
tag="shrunk"
|
tag="shrunk"
|
||||||
|
use_tag="Y"
|
||||||
date_YYYYMMDD="`date "+%Y%m%d"`"
|
date_YYYYMMDD="`date "+%Y%m%d"`"
|
||||||
location="."
|
location="."
|
||||||
search="ls"
|
search="ls"
|
||||||
@@ -28,7 +29,7 @@ function usage() {
|
|||||||
# Parameters:
|
# Parameters:
|
||||||
# 1) The exit status to use.
|
# 1) The exit status to use.
|
||||||
status=$1
|
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
|
cat <<- EOF
|
||||||
Compress JPG or PNG image(s). Can handle folders and work recursively.
|
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.
|
-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.
|
-d : Delete the original image if the compressed image is smaller.
|
||||||
-c : Clean the filename of underscores, dashes, 'IMG', etc.
|
-c : Clean the filename of underscores, dashes, 'IMG', etc.
|
||||||
|
-e | -t : Format timestamp to the expanded model.
|
||||||
-A : Resursively Force, Delete, and Clean.
|
-A : Resursively Force, Delete, and Clean.
|
||||||
-h : Display this usage text.
|
-h : Display this usage text.
|
||||||
-x : Enable BASH debugging.
|
-x : Enable BASH debugging.
|
||||||
-t : Format timestamp.
|
-n : No file extension.
|
||||||
EOF
|
EOF
|
||||||
exit $status
|
exit $status
|
||||||
}
|
}
|
||||||
|
|
||||||
## Parameters ##
|
## Parameters ##
|
||||||
|
|
||||||
while getopts ":s:l:rfFdcAhxt" opt; do
|
while getopts ":s:l:rfFdcetAhxn" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
s) in_size="$OPTARG" && size="$in_size" ;;
|
s) in_size="$OPTARG" && size="$in_size" ;;
|
||||||
l) location="$OPTARG" ;;
|
l) location="$OPTARG" ;;
|
||||||
@@ -62,10 +64,11 @@ while getopts ":s:l:rfFdcAhxt" opt; do
|
|||||||
d) delete="Y" ;;
|
d) delete="Y" ;;
|
||||||
c) clean="Y" ;;
|
c) clean="Y" ;;
|
||||||
e) expand="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 ;;
|
h) usage 0 ;;
|
||||||
x) set -x ;;
|
x) set -x ;;
|
||||||
t) format_time="Y" ;;
|
n) use_tag="N" ;;
|
||||||
*) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;;
|
*) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@@ -114,6 +117,12 @@ $search "$location" | sort | while read image; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
new_image="${image//.$extension/}.$tag-$date_YYYYMMDD.$size.$extension"
|
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 ##
|
## Clean Filename ##
|
||||||
# Prevent directory from having its name cleaned too.
|
# Prevent directory from having its name cleaned too.
|
||||||
@@ -132,9 +141,7 @@ $search "$location" | sort | while read image; do
|
|||||||
# Date Data
|
# Date Data
|
||||||
new_image_exp="${TEMP:0:4}-${TEMP:4:2}-${TEMP:6:2}"
|
new_image_exp="${TEMP:0:4}-${TEMP:4:2}-${TEMP:6:2}"
|
||||||
# Time Data
|
# Time Data
|
||||||
if [[ "$format_time" == "Y" ]]; then
|
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
|
||||||
new_image_exp="${new_image_exp}_${TEMP:8:2}-${TEMP:10:2}-${TEMP:12:2}"
|
|
||||||
fi
|
|
||||||
# Remainder Data
|
# Remainder Data
|
||||||
if [[ "${TEMP:14:1}" == "." ]]; then
|
if [[ "${TEMP:14:1}" == "." ]]; then
|
||||||
SEP=""
|
SEP=""
|
||||||
@@ -156,7 +163,7 @@ $search "$location" | sort | while read image; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Skip if a compressed image was already created today.
|
# 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."
|
echo " SKIP: Image has already been shrunk previously, moving on."
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1106,6 +1106,15 @@
|
|||||||
status="$?"
|
status="$?"
|
||||||
return "$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
|
- name: General | Account Management | Users | Files | Common Variable
|
||||||
set_fact:
|
set_fact:
|
||||||
@@ -1189,6 +1198,7 @@
|
|||||||
{{ alias_docker_other }}
|
{{ alias_docker_other }}
|
||||||
{{ alias_flatpak_clean }}
|
{{ alias_flatpak_clean }}
|
||||||
{{ alias_commit }}
|
{{ alias_commit }}
|
||||||
|
{{ function_loop }}
|
||||||
|
|
||||||
- name: General | Account Management | Users | Files | .bashrc
|
- name: General | Account Management | Users | Files | .bashrc
|
||||||
blockinfile:
|
blockinfile:
|
||||||
|
|||||||
@@ -57,6 +57,7 @@
|
|||||||
- { app: "org.tenacityaudio.Tenacity", name: "tenacity", extra: "" }
|
- { app: "org.tenacityaudio.Tenacity", name: "tenacity", extra: "" }
|
||||||
- { app: "io.lmms.LMMS", name: "lmms", extra: "" }
|
- { app: "io.lmms.LMMS", name: "lmms", extra: "" }
|
||||||
- { app: "net.sourceforge.VMPK", name: "vmpk", extra: "" }
|
- { app: "net.sourceforge.VMPK", name: "vmpk", extra: "" }
|
||||||
|
- { app: "org.musicbrainz.Picard", name: "picard", extra: "" }
|
||||||
flatpaks_gaming:
|
flatpaks_gaming:
|
||||||
- { app: "com.valvesoftware.Steam", name: "steam", extra: "" }
|
- { app: "com.valvesoftware.Steam", name: "steam", extra: "" }
|
||||||
- { app: "com.play0ad.zeroad", name: "zeroad", extra: "" }
|
- { app: "com.play0ad.zeroad", name: "zeroad", extra: "" }
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
- "{{ evolution }}*"
|
- "{{ evolution }}*"
|
||||||
- gparted
|
- gparted
|
||||||
- hugo
|
- hugo
|
||||||
|
- wireless-tools
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool)
|
- name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool)
|
||||||
|
|||||||
Reference in New Issue
Block a user