[READ-ONLY] Mirror of https://github.com/probablykasper/my-bash-scripts. My personal bash scripts
cli
0

Configure Feed

Select the types of activity you want to include in your feed.

Moved scripts to /bin

Kasper (Apr 3, 2019, 8:40 PM +0200) 701028a9 5c6fa24b

+173 -173
-38
chill
··· 1 - #! /bin/bash 2 - 3 - FILENAME=${0##*/} 4 - 5 - if [[ $1 == *h ]] 6 - then 7 - HOURS=${1%h} 8 - 9 - if [[ $2 == *m ]] 10 - then 11 - MINUTES=${2%m} 12 - (( SECONDS=HOURS * 60 * 60 + MINUTES * 60 )) 13 - echo "Sleeping for $HOURS hours and $MINUTES minutes ($SECONDS seconds)" 14 - sleep $SECONDS 15 - else 16 - (( SECONDS=HOURS * 60 * 60 )) 17 - echo "Sleeping for $HOURS hours ($SECONDS seconds)" 18 - sleep $SECONDS 19 - fi 20 - 21 - elif [[ $1 == *m ]] 22 - then 23 - MINUTES=${1%m} 24 - (( SECONDS=MINUTES * 60 )) 25 - echo "Sleeping for $MINUTES minutes ($SECONDS seconds)" 26 - sleep $SECONDS 27 - else 28 - echo "Syntax: $FILENAME #h" 29 - echo "Syntax: $FILENAME #m" 30 - echo "Syntax: $FILENAME #h #m" 31 - fi 32 - 33 - # target="$1.$2" 34 - # cur=$(date '+%H.%M') 35 - # while test $target != $cur; do 36 - # sleep 59 37 - # cur=$(date '+%H.%M') 38 - # done
-9
d-c
··· 1 - #! /bin/bash 2 - 3 - if [[ $1 == "run" ]]; then 4 - docker-compose run --rm "${@:2}" 5 - elif [[ $1 == "up" ]]; then 6 - docker-compose up "${@:2}"; docker-compose down 7 - else 8 - docker-compose "${@:1}" 9 - fi
-44
render
··· 1 - #! /bin/bash 2 - 3 - help() { 4 - SCRIPT_FILENAME=${0##*/} 5 - echo "" 6 - echo "Syntax: $SCRIPT_FILENAME <path> [path...]" 7 - echo " path: After Effects .aep file for aerender to render." 8 - echo " Can also be a directory that contains .aep files." 9 - echo "" 10 - } 11 - 12 - render() { 13 - /Applications/Adobe\ After\ Effects\ CC\ 2019/aerender -project "$1" 14 - } 15 - if [[ $1 ]]; then 16 - ERRORS=() 17 - for ARG in "$@"; do 18 - echo "" 19 - if [[ -d "$ARG" ]]; then 20 - for FILE in "$ARG"/*; do 21 - if [[ -f "$FILE" && $FILE == */Project.aep ]]; then 22 - render "$FILE" 23 - fi 24 - done 25 - elif [[ -f "$ARG" && $ARG == *.aep ]]; then 26 - render "$ARG" 27 - else 28 - echo ERROR: Not a directory or .aep file: ${ARG} 29 - ERRORS+=($ARG) 30 - fi 31 - done 32 - echo "" 33 - if [[ ${#ERRORS[@]} != 0 ]]; then 34 - echo ERROR: One or more paths were not directories or .aep files: 35 - for ELEMENT in ${FILES[@]}; do 36 - echo File: $ELEMENT. 37 - done 38 - else 39 - echo "Done rendering" 40 - fi 41 - 42 - else 43 - help 44 - fi
-21
reset-permissions
··· 1 - #! /bin/bash 2 - 3 - if [[ $2 == '' ]]; then 4 - 5 - SCRIPT_FILENAME=${0##*/} 6 - 7 - # Colors 8 - GREEN='\033[0;32m' 9 - RESET='\033[0m' 10 - 11 - echo "" 12 - echo -e "${GREEN}$SCRIPT_FILENAME${RESET}" 13 - echo -e "usage: $SCRIPT_FILENAME <username> <directory>" 14 - echo "" 15 - else 16 - 17 - USERNAME=$1 18 - DIR=$2 19 - sudo chmod -RN "${DIR}" && sudo chown -R ${USERNAME} "${DIR}" && sudo chmod -R 755 "${DIR}" 20 - 21 - fi
-3
sleepy
··· 1 - #! /bin/bash 2 - 3 - pmset sleepnow
-35
to-gif
··· 1 - #!/bin/sh 2 - 3 - FILE=$1 4 - FPS=$2 5 - SCALE=$3 6 - DURATION=$4 7 - START_AT=$5 8 - 9 - if [[ $FILE ]] 10 - then 11 - 12 - if ! [[ $FPS ]]; then FPS=15; fi 13 - if ! [[ $SCALE ]]; then SCALE=1; fi 14 - if ! [[ $DURATION ]]; then DURATION=999999; fi 15 - if ! [[ $START_AT ]]; then START_AT=0; fi 16 - 17 - PALETTE=palette-rp7w8zsw2dx83dsxrgqmt6f5.png 18 - 19 - echo "Generate a palette:" 20 - ffmpeg -y -ss $START_AT -t $DURATION -i $FILE -vf fps=$FPS,scale=w=${SCALE}*iw:h=${SCALE}*ih:-1:flags=lanczos,palettegen ${PALETTE} 21 - 22 - echo "Output the GIF using the palette:" 23 - 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 24 - 25 - rm -f ${PALETTE} 26 - 27 - else 28 - SCRIPT_FILENAME=${0##*/} 29 - echo "Syntax: $SCRIPT_FILENAME <file> [fps] [scale] [duration] [start_at]" 30 - echo " file: File to convert to gif. Required." 31 - echo " fps: Defaults to 15." 32 - echo " scale: GIF resolution. Defaults to 1." 33 - echo " duration: How long the gif will be, in seconds. Defaults to 999999." 34 - echo " start_at: Where the video starts, in seconds. Defaults to 0" 35 - fi
-3
to-mp3
··· 1 - #! /bin/bash 2 - 3 - ffmpeg -i "${1}" -ab 320k "${1%.*}.mp3"
-13
to-mp4
··· 1 - #! /bin/bash 2 - 3 - FILENAME=${0##*/} 4 - 5 - if [[ -z "$1" ]]; then 6 - echo "Syntax: $FILENAME videofile [subtitles]" 7 - else 8 - if [[ -z "$2" ]]; then 9 - ffmpeg -i "${1}" -i "${2}" "${1%.*}.mp4" 10 - else 11 - ffmpeg -i "${1}" "${1%.*}.mp4" 12 - fi 13 - fi
-7
welp
··· 1 - #! /bin/bash 2 - 3 - # get the dir that the file is in 4 - DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 5 - 6 - echo These scripts are installed in $DIR: 7 - ls -1 $DIR
+38
bin/chill
··· 1 + #! /bin/bash 2 + 3 + FILENAME=${0##*/} 4 + 5 + if [[ $1 == *h ]] 6 + then 7 + HOURS=${1%h} 8 + 9 + if [[ $2 == *m ]] 10 + then 11 + MINUTES=${2%m} 12 + (( SECONDS=HOURS * 60 * 60 + MINUTES * 60 )) 13 + echo "Sleeping for $HOURS hours and $MINUTES minutes ($SECONDS seconds)" 14 + sleep $SECONDS 15 + else 16 + (( SECONDS=HOURS * 60 * 60 )) 17 + echo "Sleeping for $HOURS hours ($SECONDS seconds)" 18 + sleep $SECONDS 19 + fi 20 + 21 + elif [[ $1 == *m ]] 22 + then 23 + MINUTES=${1%m} 24 + (( SECONDS=MINUTES * 60 )) 25 + echo "Sleeping for $MINUTES minutes ($SECONDS seconds)" 26 + sleep $SECONDS 27 + else 28 + echo "Syntax: $FILENAME #h" 29 + echo "Syntax: $FILENAME #m" 30 + echo "Syntax: $FILENAME #h #m" 31 + fi 32 + 33 + # target="$1.$2" 34 + # cur=$(date '+%H.%M') 35 + # while test $target != $cur; do 36 + # sleep 59 37 + # cur=$(date '+%H.%M') 38 + # done
+9
bin/d-c
··· 1 + #! /bin/bash 2 + 3 + if [[ $1 == "run" ]]; then 4 + docker-compose run --rm "${@:2}" 5 + elif [[ $1 == "up" ]]; then 6 + docker-compose up "${@:2}"; docker-compose down 7 + else 8 + docker-compose "${@:1}" 9 + fi
+44
bin/render
··· 1 + #! /bin/bash 2 + 3 + help() { 4 + SCRIPT_FILENAME=${0##*/} 5 + echo "" 6 + echo "Syntax: $SCRIPT_FILENAME <path> [path...]" 7 + echo " path: After Effects .aep file for aerender to render." 8 + echo " Can also be a directory that contains .aep files." 9 + echo "" 10 + } 11 + 12 + render() { 13 + /Applications/Adobe\ After\ Effects\ CC\ 2019/aerender -project "$1" 14 + } 15 + if [[ $1 ]]; then 16 + ERRORS=() 17 + for ARG in "$@"; do 18 + echo "" 19 + if [[ -d "$ARG" ]]; then 20 + for FILE in "$ARG"/*; do 21 + if [[ -f "$FILE" && $FILE == */Project.aep ]]; then 22 + render "$FILE" 23 + fi 24 + done 25 + elif [[ -f "$ARG" && $ARG == *.aep ]]; then 26 + render "$ARG" 27 + else 28 + echo ERROR: Not a directory or .aep file: ${ARG} 29 + ERRORS+=($ARG) 30 + fi 31 + done 32 + echo "" 33 + if [[ ${#ERRORS[@]} != 0 ]]; then 34 + echo ERROR: One or more paths were not directories or .aep files: 35 + for ELEMENT in ${FILES[@]}; do 36 + echo File: $ELEMENT. 37 + done 38 + else 39 + echo "Done rendering" 40 + fi 41 + 42 + else 43 + help 44 + fi
+21
bin/reset-permissions
··· 1 + #! /bin/bash 2 + 3 + if [[ $2 == '' ]]; then 4 + 5 + SCRIPT_FILENAME=${0##*/} 6 + 7 + # Colors 8 + GREEN='\033[0;32m' 9 + RESET='\033[0m' 10 + 11 + echo "" 12 + echo -e "${GREEN}$SCRIPT_FILENAME${RESET}" 13 + echo -e "usage: $SCRIPT_FILENAME <username> <directory>" 14 + echo "" 15 + else 16 + 17 + USERNAME=$1 18 + DIR=$2 19 + sudo chmod -RN "${DIR}" && sudo chown -R ${USERNAME} "${DIR}" && sudo chmod -R 755 "${DIR}" 20 + 21 + fi
+3
bin/sleepy
··· 1 + #! /bin/bash 2 + 3 + pmset sleepnow
+35
bin/to-gif
··· 1 + #!/bin/sh 2 + 3 + FILE=$1 4 + FPS=$2 5 + SCALE=$3 6 + DURATION=$4 7 + START_AT=$5 8 + 9 + if [[ $FILE ]] 10 + then 11 + 12 + if ! [[ $FPS ]]; then FPS=15; fi 13 + if ! [[ $SCALE ]]; then SCALE=1; fi 14 + if ! [[ $DURATION ]]; then DURATION=999999; fi 15 + if ! [[ $START_AT ]]; then START_AT=0; fi 16 + 17 + PALETTE=palette-rp7w8zsw2dx83dsxrgqmt6f5.png 18 + 19 + echo "Generate a palette:" 20 + ffmpeg -y -ss $START_AT -t $DURATION -i $FILE -vf fps=$FPS,scale=w=${SCALE}*iw:h=${SCALE}*ih:-1:flags=lanczos,palettegen ${PALETTE} 21 + 22 + echo "Output the GIF using the palette:" 23 + 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 24 + 25 + rm -f ${PALETTE} 26 + 27 + else 28 + SCRIPT_FILENAME=${0##*/} 29 + echo "Syntax: $SCRIPT_FILENAME <file> [fps] [scale] [duration] [start_at]" 30 + echo " file: File to convert to gif. Required." 31 + echo " fps: Defaults to 15." 32 + echo " scale: GIF resolution. Defaults to 1." 33 + echo " duration: How long the gif will be, in seconds. Defaults to 999999." 34 + echo " start_at: Where the video starts, in seconds. Defaults to 0" 35 + fi
+3
bin/to-mp3
··· 1 + #! /bin/bash 2 + 3 + ffmpeg -i "${1}" -ab 320k "${1%.*}.mp3"
+13
bin/to-mp4
··· 1 + #! /bin/bash 2 + 3 + FILENAME=${0##*/} 4 + 5 + if [[ -z "$1" ]]; then 6 + echo "Syntax: $FILENAME videofile [subtitles]" 7 + else 8 + if [[ -z "$2" ]]; then 9 + ffmpeg -i "${1}" -i "${2}" "${1%.*}.mp4" 10 + else 11 + ffmpeg -i "${1}" "${1%.*}.mp4" 12 + fi 13 + fi
+7
bin/welp
··· 1 + #! /bin/bash 2 + 3 + # get the dir that the file is in 4 + DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 5 + 6 + echo These scripts are installed in $DIR: 7 + ls -1 $DIR