···11+#! /bin/bash
22+33+if [[ $1 == "run" ]]; then
44+ docker-compose run --rm "${@:2}"
55+elif [[ $1 == "up" ]]; then
66+ docker-compose up "${@:2}"; docker-compose down
77+else
88+ docker-compose "${@:1}"
99+fi
+44
render
···11+#! /bin/bash
22+33+help() {
44+ SCRIPT_FILENAME=${0##*/}
55+ echo ""
66+ echo "Syntax: $SCRIPT_FILENAME <path> [path...]"
77+ echo " path: After Effects .aep file for aerender to render."
88+ echo " Can also be a directory that contains .aep files."
99+ echo ""
1010+}
1111+1212+render() {
1313+ /Applications/Adobe\ After\ Effects\ CC\ 2019/aerender -project "$1"
1414+}
1515+if [[ $1 ]]; then
1616+ ERRORS=()
1717+ for ARG in "$@"; do
1818+ echo ""
1919+ if [[ -d "$ARG" ]]; then
2020+ for FILE in "$ARG"/*; do
2121+ if [[ -f "$FILE" && $FILE == */Project.aep ]]; then
2222+ render "$FILE"
2323+ fi
2424+ done
2525+ elif [[ -f "$ARG" && $ARG == *.aep ]]; then
2626+ render "$ARG"
2727+ else
2828+ echo ERROR: Not a directory or .aep file: ${ARG}
2929+ ERRORS+=($ARG)
3030+ fi
3131+ done
3232+ echo ""
3333+ if [[ ${#ERRORS[@]} != 0 ]]; then
3434+ echo ERROR: One or more paths were not directories or .aep files:
3535+ for ELEMENT in ${FILES[@]}; do
3636+ echo File: $ELEMENT.
3737+ done
3838+ else
3939+ echo "Done rendering"
4040+ fi
4141+4242+else
4343+ help
4444+fi
···11+#!/bin/sh
22+33+FILE=$1
44+FPS=$2
55+SCALE=$3
66+DURATION=$4
77+START_AT=$5
88+99+if [[ $FILE ]]
1010+then
1111+1212+ if ! [[ $FPS ]]; then FPS=15; fi
1313+ if ! [[ $SCALE ]]; then SCALE=1; fi
1414+ if ! [[ $DURATION ]]; then DURATION=999999; fi
1515+ if ! [[ $START_AT ]]; then START_AT=0; fi
1616+1717+ PALETTE=palette-rp7w8zsw2dx83dsxrgqmt6f5.png
1818+1919+ echo "Generate a palette:"
2020+ ffmpeg -y -ss $START_AT -t $DURATION -i $FILE -vf fps=$FPS,scale=w=${SCALE}*iw:h=${SCALE}*ih:-1:flags=lanczos,palettegen ${PALETTE}
2121+2222+ echo "Output the GIF using the palette:"
2323+ ffmpeg -ss $START_AT -t $DURATION -i $FILE -i ${PALETTE} -filter_complex "fps=${FPS},scale=w=${SCALE}*iw:h=${SCALE}*ih:flags=lanczos[x];[x][1:v]paletteuse" ${FILE%.*}.gif
2424+2525+ rm -f ${PALETTE}
2626+2727+else
2828+ SCRIPT_FILENAME=${0##*/}
2929+ echo "Syntax: $SCRIPT_FILENAME <file> [fps] [scale] [duration] [start_at]"
3030+ echo " file: File to convert to gif. Required."
3131+ echo " fps: Defaults to 15."
3232+ echo " scale: GIF resolution. Defaults to 1."
3333+ echo " duration: How long the gif will be, in seconds. Defaults to 999999."
3434+ echo " start_at: Where the video starts, in seconds. Defaults to 0"
3535+fi