aboutsummaryrefslogtreecommitdiffstats
path: root/.config/init/funcs
diff options
context:
space:
mode:
Diffstat (limited to '.config/init/funcs')
-rwxr-xr-x.config/init/funcs/gifo21
-rwxr-xr-x.config/init/funcs/make-gif40
2 files changed, 42 insertions, 19 deletions
diff --git a/.config/init/funcs/gifo b/.config/init/funcs/gifo
new file mode 100755
index 0000000..854b45a
--- /dev/null
+++ b/.config/init/funcs/gifo
@@ -0,0 +1,21 @@
+#!/usr/bin/env zsh
+# optimise gifs with gifsicle
+
+local before
+local after
+local ofile
+
+for i in $@; do
+ if [[ -f "$i" ]]; then
+ ofile="$i.out"
+ while [[ -f "$ofile" ]]; do
+ ofile="$ofile.out"
+ done
+ du -h "$i" | cut -f 1 | read before
+ echo "$i..."
+ gifsicle --no-ignore-errors -w -O3 "$i" -o "$i.out"
+ [[ -f "$ofile" ]] && rm "$i" && mv "$ofile" "$i" && \
+ du -h "$i" | cut -f 1 | read after && \
+ echo " $before -> $after" || echo " failed"
+ fi
+done
diff --git a/.config/init/funcs/make-gif b/.config/init/funcs/make-gif
index 3221e97..e100650 100755
--- a/.config/init/funcs/make-gif
+++ b/.config/init/funcs/make-gif
@@ -10,9 +10,9 @@ usage() {
echo ""
echo " description option default val"
echo " start time -s <time> 00:00:00"
- echo " length in seconds -t <int> full length"
- echo " gif fps -f <int> 10"
- echo " gif pixel width -w <int> 480"
+ echo " length in seconds -t <num> full length"
+ echo " gif fps -f <num> 10"
+ echo " gif pixel width -w <num> 480"
echo " use subtitles -b"
echo " use subtitle track -n <int> 0"
[[ $hasgsic ]] && echo "optimise with gifsicle -g"
@@ -28,8 +28,10 @@ local subs=""
local strack=0
local gsic=""
-local timepat='^(([0-9][0-9]:){1,2}[0-9][0-9]|[0-9]+)$'
-local intpat='^[0-9]+$'
+local timepat='^(([0-9][0-9]:){1,2}[0-9][0-9]|[0-9]+)(\.[0-9]+){0,1}$'
+local numpat='^[1-9][0-9]*(\.[0-9]+){0,1}$'
+local intpat='^[1-9][0-9]*$'
+local zintpat='^[0-9]+$'
# tmp var used to old '-t' if length is used
local t=""
@@ -44,25 +46,25 @@ if [[ $hasgsic ]]; then
start="$OPTARG"
;;
t)
- [[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "length must be an integer"
+ [[ ! $(echo $OPTARG | grep -oE "$numpat") ]] \
+ && usage "length must be a positive rational number"
length=$OPTARG
t="-t"
;;
f)
- [[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "start time must be an integer"
+ [[ ! $(echo $OPTARG | grep -oE "$numpat") ]] \
+ && usage "fps must be a positive rational number"
fps=$OPTARG
;;
w)
[[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "fps must be an integer"
+ && usage "width must be a positive integer"
width=$OPTARG
;;
b) subs=true ;;
n)
- [[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "sub track specifier must be an integer"
+ [[ ! $(echo $OPTARG | grep -oE "$zintpat") ]] \
+ && usage "sub track index must be a non-negative integer"
strack=$OPTARG
;;
g) gsic=true ;;
@@ -79,25 +81,25 @@ else
start="$OPTARG"
;;
t)
- [[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "length must be an integer"
+ [[ ! $(echo $OPTARG | grep -oE "$numpat") ]] \
+ && usage "length must be a positive rational number"
length=$OPTARG
t="-t"
;;
f)
- [[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "start time must be an integer"
+ [[ ! $(echo $OPTARG | grep -oE "$numpat") ]] \
+ && usage "fps must be a positive rational number"
fps=$OPTARG
;;
w)
[[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "fps must be an integer"
+ && usage "width must be a positive integer"
width=$OPTARG
;;
b) subs=true ;;
n)
- [[ ! $(echo $OPTARG | grep -oE "$intpat") ]] \
- && usage "sub track specifier must be an integer"
+ [[ ! $(echo $OPTARG | grep -oE "$zintpat") ]] \
+ && usage "sub track index must be a non-negative integer"
strack=$OPTARG
;;
h) usage ;;