Date: Sun, 12 Apr 2009 20:16:25 GMT From: Alex Kozlov <spam@rm-rf.kiev.ua> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/133669: [patch] x11/printscreen update to 1.3 Message-ID: <200904122016.n3CKGPuH054095@www.freebsd.org> Resent-Message-ID: <200904122020.n3CKK5h4037252@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 133669 >Category: ports >Synopsis: [patch] x11/printscreen update to 1.3 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Apr 12 20:20:04 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Alex Kozlov >Release: >Organization: private >Environment: >Description: Make printscreen more user friendly. >How-To-Repeat: >Fix: Patch attached with submission follows: Index: x11/printscreen/Makefile @@ -6,7 +6,7 @@ # PORTNAME= printscreen -PORTVERSION= 1.0 +PORTVERSION= 1.3 CATEGORIES= x11 DISTFILES= Index: x11/printscreen/files/printscreen.in @@ -1,13 +1,88 @@ #!/bin/sh -PATH=/bin:/usr/local/bin +PATH=/bin:/usr/bin:/usr/local/bin +xwdcommon='-nobdrs' +xwdroot='-root' + +INFMT=pnm +OUTFMT=png STOREDIR="${HOME}/.screenshots" SHOTDATE="$(date +%Y.%m.%d-%H.%M.%S)" -SHOTNAME="${STOREDIR}/screenshot-${SHOTDATE}.png" -if [ ! -d "${STOREDIR}" ]; then - mkdir "${STOREDIR}" -fi +parse_options() +{ + local OPT OPTARG OPTIND fmt fmtlist i + + while getopts d:f:bhlqs OPT; do + # escape meta + OPTARG=${OPTARG%%[;\\\$]*} + + case ${OPT} in + b) xwdcommon="${xwdcommon} -frame" ;; + d) delay="${OPTARG}" ;; + f) + OUTFMT="${OPTARG}" + unset INFMT + + for fmt in pnm pbm pgm ppm; do + if [ -x /usr/local/bin/${fmt}to${OUTFMT} ]; then + INFMT=${fmt} + break + fi + done + + [ -z "${INFMT}" ] && usage + ;; + l) + for i in /usr/local/bin/p[nbgp]mto*; do + fmtlist="${fmtlist} $(echo ${i} | \ + sed -Ee's:/usr/local/bin/(pnm|pbm|pgm|ppm)to::')" + done + echo Supported output formats: + echo ${fmtlist} + exit 0 + ;; + q) xwdcommon="${xwdcommon} -silent";; + s) unset xwdroot ;; + h|*) usage ;; + esac + done + + OPTC=$((${OPTIND} - 1)) +} + +usage() +{ + echo "usage: ${0##*/} [-bhlqs] [-d sec] [-f outfmt] [shotname]" + echo ' -b when selecting a window, grab wm border too' + echo ' -d wait sec seconds before taking a shot' + echo ' -f set output format' + echo ' -h display this help and exit' + echo ' -l list output formats' + echo ' -q be silent' + echo ' -s interactively choose a window' + echo + echo "Screenshots stored in ${HOME}/.screenshots" + echo + exit 1 +} + +parse_options ${1+"$@"} +shift ${OPTC} + +if [ -z ${@+1} ]; then + SHOTNAME="${STOREDIR}/screenshot-${SHOTDATE}.${OUTFMT}" +else + SHOTNAME=$1 + shift + + [ -z ${@+1} ] || usage +fi + +[ -d "${STOREDIR}" ] || mkdir "${STOREDIR}" + +[ -n "${delay}" ] && sleep "${delay}" -xwd -root | xwdtopnm 2>/dev/null | pnmtopng 2>/dev/null > "${SHOTNAME}" +xwd ${xwdcommon} ${xwdroot} | xwdtopnm 2>/dev/null | \ + "${INFMT}to${OUTFMT}" 2>/dev/null > "${SHOTNAME}" >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904122016.n3CKGPuH054095>