tFixed options and made the script posix compliant (i guess) - scripts - various script and utils
 (HTM) git clone git://z3bra.org/scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit afab40cb5d4919f76070438bdaa8bd1f153359f2
 (DIR) parent bc785d69826def5c3cc00f91974a4464019f9bcd
 (HTM) Author: Willy Goiffon <willy@mailoo.org>
       Date:   Fri,  3 Jan 2014 10:41:07 +0100
       
       Fixed options and made the script posix compliant (i guess)
       
       Diffstat:
         M instagram                           |      79 +++++++++++++++++--------------
       
       1 file changed, 43 insertions(+), 36 deletions(-)
       ---
 (DIR) diff --git a/instagram b/instagram
       t@@ -1,30 +1,31 @@
       -#!/bin/bash
       -#
       -# 2013 Willy 'z3bra' Goiffon <willy at mailoo dot org>
       +#!/bin/sh
        #
       +# 2013 z3bra <willy at mailoo dot org>
        # INSTAGRAM - screenshot taker / manager
        #
        # Licensed under WTFPL 2.0
       -#
        # >> http://www.wtfpl.net/txt/copying/
        #
        
        IMAGE_DIR=~/usr/img
        EXEC_UPLOAD=~/bin/upload
        SSHOT_DIR=${IMAGE_DIR}/wm
       +WMNAME=`xprop -root WM_NAME|cut -d\" -f2`
       +
       +function upload() {
       +    $EXEC_UPLOAD $1
       +}
        
       -source ~/.config/instagram 2>/dev/null
        
        function usage() {
            cat <<SHBLAH
        Usage : instagram [-tmuwh] [-g number] [-s screen] [filename.png]
            -t          : create thumbnail
       -    -m          : create one shot per head
            -u          : upload the file using $UPLOAD_BIN <filename>
            -w          : take only a window for the shot (choose with pointer)
            -h          : display this help
            -d path     : save the shot in <path>
       -    -g          : create a gif (press ctrl-C to stop)
       +    -g          : create a gif (press 'q' to stop)
            -s screen   : use only the screen number <screen> for the shot
        
        Also, do not give path to shot. They're saved to $SSHOT_DIR by default.
       t@@ -43,20 +44,36 @@ function upload() {
            $EXEC_UPLOAD $1
        }
        
       -[[ "$1" = "--help" ]] && usage && exit 0
       +function headshot() {
       +
       +    xdpyinfo -ext XINERAMA | sed 's/^  head #//p' |
       +    while IFS=' :x@,' read i w h x y; do
       +        if [[ $1 = "$i" ]]; then
       +            import -window $WINDOW -crop ${w}x${h}+${x}+${y} $SSHOT_DIR/$OUTPUT
       +        fi
       +    done
       +}
       +
       +function gifit() {
       +
       +    test -z "$SCREEN" && SCREEN=0
       +    RES=`xdpyinfo -ext XINERAMA | sed -n "s/^  head #$SCREEN: \([0-9x]*\) .*$/\1/p"`
       +
       +    mkdir $SSHOT_DIR/tmp
       +    ffmpeg -f x11grab -s $RES -r 12 -i :0.$SCREEN $SSHOT_DIR/tmp/$1
        
       -# default window id
       -WINDOW='root'
       +}
       +
       +[[ "$1" = "--help" ]] && usage && exit 0
        
        while getopts ":htmuwd:gs:" opt; do
            case $opt in
                t) THUMB=1 ;;
       -        m) MULTI=1 ;;
                d) SSHOT_DIR=$OPTARG ;;
                g) GIF=1 ;;
                s) SCREEN=$OPTARG ;;
                u) UPLOAD=1 ;;
       -        w) WINDOW=$(xprop|grep 'window id'|cut -d\  -f7);;
       +        w) WINDOW=`xprop|grep 'window id'|cut -d\  -f7`;;
                h) usage; exit 0;;
                ?) echo "invalid option: -$OPTARG"; exit 1 ;;
            esac
       t@@ -64,36 +81,26 @@ done
        
        shift $((OPTIND-1))
        
       -if [[ -z "$1" ]]; then
       -    OUTPUT="$USER-$(date +%Y-%m-%d).png"
       -else
       -    OUTPUT=$1
       -fi
       -
       -if [[ "$MULTI" = "1" ]] || [[ -n $SCREEN ]]; then
        
       -    xdpyinfo -ext XINERAMA | sed '/^  head #/!d;s///' |
       -    while IFS=' :x@,' read i w h x y; do
       -        if [[ $SCREEN = "$i" ]] || [[ -z $SCREEN ]]; then
       -            import -window ${WINDOW} -crop ${w}x$h+$x+$y $SSHOT_DIR/head_$i-$OUTPUT
       -            [[ -n $THUMB ]] && import -window ${WINDOW} -thumbnail 25% -crop ${w}x$h+$x+$y $SSHOT_DIR/thumb-head_$i-$OUTPUT
       -        fi
       -    done
       +test -z $1 && OUTPUT=$WMNAME-`date +%Y-%m-%d`.png || OUTPUT=$1
       +test -z "$WINDOW" && WINDOW='root'
        
       -elif [ -n "$GIF" ]; then
       -    mkdir $SSHOT_DIR/tmp
       -    ffmpeg -f x11grab -s 1440x900 -r 25 -i :0.0 $SSHOT_DIR/tmp/out.mov
       -    ffmpeg -i $SSHOT_DIR/tmp/out.mov -r 1 -f image2 $SSHOT_DIR/tmp/%05d.jpg
       -    convert -delay 100 $SSHOT_DIR/tmp/*.jpg $SSHOT_DIR/${OUTPUT}
       -    rm -rf $SSHOT_DIR/tmp
       +if [ -n "$GIF" ]; then
       +    OUTPUT=${OUTPUT/.png/.gif}
       +    gifit $OUTPUT
       +elif [ -n "$SCREEN" ]; then
       +    OUTPUT=head_$SCREEN-$OUTPUT
       +    headshot $SCREEN
        else
            import -window ${WINDOW} $SSHOT_DIR/$OUTPUT
       -    [[ -n $THUMB ]] && import -window ${WINDOW} -thumbnail 25% $SSHOT_DIR/thumb-${OUTPUT}
        fi
        
       -if [[ "$UPLOAD" = "1" ]]; then
       +test -n "$THUMB" && import -window ${WINDOW} -thumbnail 25% $SSHOT_DIR/thumb-${OUTPUT}
       +
       +
       +meh $SSHOT_DIR/$OUTPUT
       +
       +if [ "$UPLOAD" = "1" ]; then
            cd ${IMAGE_DIR}
            upload wm/${OUTPUT}
        fi
       -
       -meh $SSHOT_DIR/$OUTPUT