I am batman
This commit is contained in:
91
scripts/swwwallcache.sh
Executable file
91
scripts/swwwallcache.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
#// set variables
|
||||
|
||||
export scrDir="$(dirname "$(realpath "$0")")"
|
||||
source "${scrDir}/globalcontrol.sh"
|
||||
export thmbDir
|
||||
export dcolDir
|
||||
|
||||
[ -d "${hydeThemeDir}" ] && cacheIn="${hydeThemeDir}" || exit 1
|
||||
[ -d "${thmbDir}" ] || mkdir -p "${thmbDir}"
|
||||
[ -d "${dcolDir}" ] || mkdir -p "${dcolDir}"
|
||||
[ -d "${cacheDir}/landing" ] || mkdir -p "${cacheDir}/landing"
|
||||
|
||||
if [ ! -z "${wallbashCustomCurve}" ] && [[ "${wallbashCustomCurve}" =~ ^([0-9]+[[:space:]][0-9]+\\n){8}[0-9]+[[:space:]][0-9]+$ ]] ; then
|
||||
export wallbashCustomCurve
|
||||
echo ":: wallbash --custom \"${wallbashCustomCurve}\""
|
||||
else
|
||||
export wallbashCustomCurve="32 50\n42 46\n49 40\n56 39\n64 38\n76 37\n90 33\n94 29\n100 20"
|
||||
fi
|
||||
|
||||
|
||||
#// define functions
|
||||
|
||||
fn_wallcache()
|
||||
{
|
||||
local x_hash="${1}"
|
||||
local x_wall="${2}"
|
||||
[ ! -e "${thmbDir}/${x_hash}.thmb" ] && magick "${x_wall}"[0] -strip -resize 1000 -gravity center -extent 1000 -quality 90 "${thmbDir}/${x_hash}.thmb"
|
||||
[ ! -e "${thmbDir}/${x_hash}.sqre" ] && magick "${x_wall}"[0] -strip -thumbnail 500x500^ -gravity center -extent 500x500 "${thmbDir}/${x_hash}.sqre"
|
||||
[ ! -e "${thmbDir}/${x_hash}.blur" ] && magick "${x_wall}"[0] -strip -scale 10% -blur 0x3 -resize 100% "${thmbDir}/${x_hash}.blur"
|
||||
[ ! -e "${thmbDir}/${x_hash}.quad" ] && magick "${thmbDir}/${x_hash}.sqre" \( -size 500x500 xc:white -fill "rgba(0,0,0,0.7)" -draw "polygon 400,500 500,500 500,0 450,0" -fill black -draw "polygon 500,500 500,0 450,500" \) -alpha Off -compose CopyOpacity -composite "${thmbDir}/${x_hash}.png" && mv "${thmbDir}/${x_hash}.png" "${thmbDir}/${x_hash}.quad"
|
||||
{ [ ! -e "${dcolDir}/${x_hash}.dcol" ] || [ "$(wc -l < "${dcolDir}/${x_hash}.dcol")" -ne 89 ] ;} && "${scrDir}/wallbash.sh" --custom "${wallbashCustomCurve}" "${thmbDir}/${x_hash}.thmb" "${dcolDir}/${x_hash}" &> /dev/null
|
||||
}
|
||||
|
||||
fn_wallcache_force()
|
||||
{
|
||||
local x_hash="${1}"
|
||||
local x_wall="${2}"
|
||||
magick "${x_wall}"[0] -strip -resize 1000 -gravity center -extent 1000 -quality 90 "${thmbDir}/${x_hash}.thmb"
|
||||
magick "${x_wall}"[0] -strip -thumbnail 500x500^ -gravity center -extent 500x500 "${thmbDir}/${x_hash}.sqre"
|
||||
magick "${x_wall}"[0] -strip -scale 10% -blur 0x3 -resize 100% "${thmbDir}/${x_hash}.blur"
|
||||
magick "${thmbDir}/${x_hash}.sqre" \( -size 500x500 xc:white -fill "rgba(0,0,0,0.7)" -draw "polygon 400,500 500,500 500,0 450,0" -fill black -draw "polygon 500,500 500,0 450,500" \) -alpha Off -compose CopyOpacity -composite "${thmbDir}/${x_hash}.png" && mv "${thmbDir}/${x_hash}.png" "${thmbDir}/${x_hash}.quad"
|
||||
"${scrDir}/wallbash.sh" --custom "${wallbashCustomCurve}" "${thmbDir}/${x_hash}.thmb" "${dcolDir}/${x_hash}" &> /dev/null
|
||||
}
|
||||
|
||||
export -f fn_wallcache
|
||||
export -f fn_wallcache_force
|
||||
|
||||
|
||||
#// evaluate options
|
||||
|
||||
while getopts "w:t:f" option ; do
|
||||
case $option in
|
||||
w ) # generate cache for input wallpaper
|
||||
if [ -z "${OPTARG}" ] || [ ! -f "${OPTARG}" ] ; then
|
||||
echo "Error: Input wallpaper \"${OPTARG}\" not found!"
|
||||
exit 1
|
||||
fi
|
||||
cacheIn="${OPTARG}"
|
||||
;;
|
||||
t ) # generate cache for input theme
|
||||
cacheIn="$(dirname "${hydeThemeDir}")/${OPTARG}"
|
||||
if [ ! -d "${cacheIn}" ] ; then
|
||||
echo "Error: Input theme \"${OPTARG}\" not found!"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
f ) # full cache rebuild
|
||||
cacheIn="$(dirname "${hydeThemeDir}")"
|
||||
mode="_force"
|
||||
;;
|
||||
* ) # invalid option
|
||||
echo "... invalid option ..."
|
||||
echo "$(basename "${0}") -[option]"
|
||||
echo "w : generate cache for input wallpaper"
|
||||
echo "t : generate cache for input theme"
|
||||
echo "f : full cache rebuild"
|
||||
exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
#// generate cache
|
||||
|
||||
wallPathArray=("${cacheIn}")
|
||||
wallPathArray+=("${wallAddCustomPath[@]}")
|
||||
get_hashmap "${wallPathArray[@]}"
|
||||
parallel --bar --link "fn_wallcache${mode}" ::: "${wallHash[@]}" ::: "${wallList[@]}"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user