pkgsrc/print/papersize/files/setpapersize
agc 2f5560d3af Add lout to the packages which can have their papersize set or queried
by setpapersize/getpapersize.

Addresses the second part of PR 18687 properly.
2003-09-15 10:51:39 +00:00

122 lines
3.7 KiB
Text

#!@SH@
#
# $NetBSD: setpapersize,v 1.10 2003/09/15 10:51:40 agc Exp $
#
# Small shell script to set the default papersize for packages
#
# Make sure we've been given an argument
if [ $# -lt 1 ]; then
@ECHO@ "Usage: setpapersize papersize"
exit 1
fi
papersize=$1
shift 1
# Make sure the argument is valid.
case $papersize in
a4|A4)
papersize=A4
dimensions="210mm x 297mm"
;;
letter|letterdj)
papersize=`@ECHO@ $papersize|@SED@ -e 's|^.|L|'`
dimensions='8.5" x 11"'
;;
Letter|Letterdj)
dimensions='8.5" x 11"'
;;
*)
@ECHO@ "Invalid paper size: $papersize"
@ECHO@ "It should be one of: A4, Letter or Letterdj"
exit 1
;;
esac
lowpaper=`@ECHO@ $papersize | @TR@ '[A-Z]' '[a-z]'`
if [ $# -eq 0 ]; then
pkgs="a2ps ddd enscript ghostscript gv magicfilter psutils";
else
pkgs=$@
fi
set $pkgs
while [ $# -gt 0 ]; do
case $1 in
a2ps)
a2psfile=@PKG_SYSCONFDIR@/a2ps-site.cfg
if [ -s "$a2psfile" ]; then
@MV@ $a2psfile $a2psfile.old
@SED@ -e 's|^Options: --medium=.*|Options: --medium='$papersize'|' $a2psfile.old > $a2psfile && @RM@ $a2psfile.old
@ECHO@ "Set $1 package default paper size to $papersize in $a2psfile"
fi
;;
ddd)
dddfile=@X11BASE@/lib/X11/app-defaults/Ddd
if [ -s "$dddfile" ]; then
@MV@ $dddfile $dddfile.old
@SED@ -e 's|@Ddd@\*paperSize:.*|@Ddd@*paperSize: '$dimensions'|' $dddfile.old > $dddfile && @RM@ $dddfile.old
@ECHO@ "Set $1 package default paper size to $papersize in $dddfile"
fi
;;
enscript)
enscriptfile=@PKG_SYSCONFDIR@/enscript.cfg
if [ -s "$enscriptfile" ]; then
@MV@ $enscriptfile $enscriptfile.old
@SED@ -e 's|^DefaultMedia:.*|DefaultMedia: '$papersize'|' $enscriptfile.old > $enscriptfile && @RM@ $enscriptfile.old
@ECHO@ "Set $1 package default paper size to $papersize in $enscriptfile"
fi
;;
ghostscript)
ghostscriptfile=`ls @LOCALBASE@/share/ghostscript/*/lib/gs_init.ps 2>/dev/null | tail -1`
if [ -s "$ghostscriptfile" ]; then
@MV@ $ghostscriptfile $ghostscriptfile.old
@SED@ -e '/^% Optionally choose a default paper size other than U.S. letter.$/N' -e 's/^\(% Optionally.*\n\)[%[:space:]]*(.*\() \/PAPERSIZE where.*\)$/\1('$lowpaper'\2/' $ghostscriptfile.old > $ghostscriptfile && @RM@ $ghostscriptfile.old
@ECHO@ "Set $1 package default paper size to $papersize in $ghostscriptfile"
fi
;;
gv)
gvfile=@X11BASE@/lib/X11/app-defaults/GV
if [ -s "$gvfile" ]; then
@MV@ $gvfile $gvfile.old
@SED@ -e 's|^GV.fallbackPageMedia:.*|GV.fallbackPageMedia: '$papersize'|' $gvfile.old > $gvfile && @RM@ $gvfile.old
@ECHO@ "Set $1 package default paper size to $papersize in $gvfile"
fi
;;
lout)
loutfile=@LOCALBASE@/share/lout/include/dsf
if [ -s "$loutfile" ]; then
@MV@ $loutfile $loutfile.old
env PAPERSIZE=$papersize @AWK@ '$1 == "named" && $2 == "@PageType" { printf(" %s %s\t\t{ %s\t%s %s # page type (width, height)\n", $1, $2, ENVIRON["PAPERSIZE"], $5, $6); next } { print $0 }' $loutfile.old > $loutfile
@ECHO@ "Set $1 package default paper size to $papersize in $loutfile"
fi
;;
magicfilter)
magicdir=@LOCALBASE@/libexec/magicfilter
if [ -s "$magicdir" ]; then
for f in $magicdir/*-filter; do
@MV@ $f $f.old
@SED@ -e 's|-sPAPERSIZE=[a-zA-Z0-9_]*|-sPAPERSIZE='$lowpaper'|' $f.old > $f && @RM@ $f.old
@CHMOD@ 555 $f
done
@ECHO@ "Set $1 package default paper size to $papersize in $magicdir/*-filter"
fi
;;
psutils)
psutilsfile=@PKG_SYSCONFDIR@/psutils.cfg
if [ -s "$psutilsfile" ]; then
@MV@ $psutilsfile $psutilsfile.old
@SED@ -e 's|^PAPERSIZE.*|PAPERSIZE='$lowpaper'|' $psutilsfile.old > $psutilsfile && @RM@ $psutilsfile.old
@ECHO@ "Set $1 package default paper size to $papersize in $psutilsfile"
fi
;;
*)
@ECHO@ "Warning: Package $1 not recognised"
;;
esac
shift 1
done
exit 0