1*641a6cfbSDevin Teske# Copyright (c) 2012 Devin Teske 2*641a6cfbSDevin Teske# All Rights Reserved. 3*641a6cfbSDevin Teske# 4*641a6cfbSDevin Teske# Redistribution and use in source and binary forms, with or without 5*641a6cfbSDevin Teske# modification, are permitted provided that the following conditions 6*641a6cfbSDevin Teske# are met: 7*641a6cfbSDevin Teske# 1. Redistributions of source code must retain the above copyright 8*641a6cfbSDevin Teske# notice, this list of conditions and the following disclaimer. 9*641a6cfbSDevin Teske# 2. Redistributions in binary form must reproduce the above copyright 10*641a6cfbSDevin Teske# notice, this list of conditions and the following disclaimer in the 11*641a6cfbSDevin Teske# documentation and/or other materials provided with the distribution. 12*641a6cfbSDevin Teske# 13*641a6cfbSDevin Teske# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14*641a6cfbSDevin Teske# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE 15*641a6cfbSDevin Teske# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16*641a6cfbSDevin Teske# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17*641a6cfbSDevin Teske# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18*641a6cfbSDevin Teske# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19*641a6cfbSDevin Teske# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20*641a6cfbSDevin Teske# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21*641a6cfbSDevin Teske# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22*641a6cfbSDevin Teske# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23*641a6cfbSDevin Teske# SUCH DAMAGE. 24*641a6cfbSDevin Teske# 25*641a6cfbSDevin Teske# $FreeBSD$ 26*641a6cfbSDevin Teske 27*641a6cfbSDevin TeskeUsage: bsdconfig @PROGRAM_NAME@ [OPTIONS] 28*641a6cfbSDevin Teske 29*641a6cfbSDevin TeskeOPTIONS: 30*641a6cfbSDevin Teske -h Print usage statement and exit. 31*641a6cfbSDevin Teske -c Don't show command-line shortcut relationships. 32*641a6cfbSDevin Teske -d Don't show the date in the graph label. 33*641a6cfbSDevin Teske -i Don't show include relationships. 34*641a6cfbSDevin Teske 35*641a6cfbSDevin TeskeEXAMPLES: 36*641a6cfbSDevin Teske View dot(1) language output describing bsdconfig(8) layout/make-up: 37*641a6cfbSDevin Teske 38*641a6cfbSDevin Teske bsdconfig @PROGRAM_NAME@ | less 39*641a6cfbSDevin Teske 40*641a6cfbSDevin Teske Render dot(1) output in SVG format (displays in most modern browsers): 41*641a6cfbSDevin Teske 42*641a6cfbSDevin Teske bsdconfig @PROGRAM_NAME@ | dot -Tsvg -o bsdconfig.svg 43*641a6cfbSDevin Teske 44*641a6cfbSDevin Teske NOTE: Requires `graphics/graphviz' from ports/packages. 45*641a6cfbSDevin Teske 46*641a6cfbSDevin Teske View the above-rendered SVG file using your favorite X11-based viewer: 47*641a6cfbSDevin Teske 48*641a6cfbSDevin Teske gimmage bsdconfig.svg 49*641a6cfbSDevin Teske 50*641a6cfbSDevin Teske NOTE: Requires `graphics/gimmage' from ports/packages. 51*641a6cfbSDevin Teske 52*641a6cfbSDevin Teske or 53*641a6cfbSDevin Teske 54*641a6cfbSDevin Teske gthumb bsdconfig.svg 55*641a6cfbSDevin Teske 56*641a6cfbSDevin Teske NOTE: Image is scaled to fit window on launch. 57*641a6cfbSDevin Teske NOTE: Requires `graphics/gthumb' from ports/packages. 58*641a6cfbSDevin Teske 59*641a6cfbSDevin Teske or 60*641a6cfbSDevin Teske 61*641a6cfbSDevin Teske gqview bsdconfig.svg 62*641a6cfbSDevin Teske 63*641a6cfbSDevin Teske NOTE: Requires `graphics/gqview' from ports/packages. 64*641a6cfbSDevin Teske 65*641a6cfbSDevin Teske or 66*641a6cfbSDevin Teske 67*641a6cfbSDevin Teske gx bsdconfig.svg 68*641a6cfbSDevin Teske 69*641a6cfbSDevin Teske NOTE: Image is scaled to fit window on launch. 70*641a6cfbSDevin Teske NOTE: Requires `graphics/gx' from ports/packages. 71*641a6cfbSDevin Teske 72*641a6cfbSDevin Teske or 73*641a6cfbSDevin Teske 74*641a6cfbSDevin Teske eog bsdconfig.svg 75*641a6cfbSDevin Teske 76*641a6cfbSDevin Teske NOTE: Requires `graphics/eog' from ports/packages. 77*641a6cfbSDevin Teske 78*641a6cfbSDevin Teske Render dot(1) output as PostScript print output consisting of multiple 79*641a6cfbSDevin Teske US-Letter sized pages that can be assembled into a large poster (using 80*641a6cfbSDevin Teske traditional tools such as scissors and tape): 81*641a6cfbSDevin Teske 82*641a6cfbSDevin Teske bsdconfig @PROGRAM_NAME@ | dot -Teps -o bsdconfig.eps 83*641a6cfbSDevin Teske poster -v -mLet -s1 -o bsdconfig.ps bsdconfig.eps 84*641a6cfbSDevin Teske 85*641a6cfbSDevin Teske NOTE: Change "-s1" above to "-s0.5" to halve the size of the 86*641a6cfbSDevin Teske poster or "-s2", for example, to double the poster size. 87*641a6cfbSDevin Teske 88*641a6cfbSDevin Teske NOTE: Requires both `graphics/graphviz' and `print/poster' from 89*641a6cfbSDevin Teske ports/packages. 90*641a6cfbSDevin Teske 91*641a6cfbSDevin Teske Render dot(1) output as PostScript scaled to fit on a poster consisting 92*641a6cfbSDevin Teske of 2x-wide and 4x-tall US-Letter sized pages: 93*641a6cfbSDevin Teske 94*641a6cfbSDevin Teske bsdconfig @PROGRAM_NAME@ | dot -Teps -o bsdconfig.eps 95*641a6cfbSDevin Teske poster -v -mLet -p2x4Letter -o bsdconfig.ps bsdconfig.eps 96*641a6cfbSDevin Teske 97*641a6cfbSDevin Teske NOTE: Requires both `graphics/graphviz' and `print/poster' from 98*641a6cfbSDevin Teske ports/packages. 99*641a6cfbSDevin Teske 100*641a6cfbSDevin Teske View the above-rendered PostScript poster using X11: 101*641a6cfbSDevin Teske 102*641a6cfbSDevin Teske gsview bsdconfig.ps 103*641a6cfbSDevin Teske 104*641a6cfbSDevin Teske NOTE: Requires `print/gsview' from ports/packages. 105*641a6cfbSDevin Teske 106*641a6cfbSDevin Teske or 107*641a6cfbSDevin Teske 108*641a6cfbSDevin Teske convert bsdconfig.ps bsdconfig.pdf 109*641a6cfbSDevin Teske xpdf bsdconfig.pdf 110*641a6cfbSDevin Teske 111*641a6cfbSDevin Teske NOTE: Requires both `graphics/ImageMagick' and 112*641a6cfbSDevin Teske `graphics/xdpf' from ports/packages. 113*641a6cfbSDevin Teske 114*641a6cfbSDevin Teske NOTE: The converted PDF file is not suitable for 115*641a6cfbSDevin Teske printing due to loss of quality during the 116*641a6cfbSDevin Teske conversion process. 117*641a6cfbSDevin Teske 118*641a6cfbSDevin Teske Print the above-rendered PostScript poster: 119*641a6cfbSDevin Teske 120*641a6cfbSDevin Teske lpr -h bsdconfig.ps 121*641a6cfbSDevin Teske 122*641a6cfbSDevin Teske NOTE: Requires configuration of a printer in `/etc/printcap'. 123*641a6cfbSDevin Teske 124*641a6cfbSDevin Teske Extract each page of the poster into a separate PNG file: 125*641a6cfbSDevin Teske 126*641a6cfbSDevin Teske gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=letter \ 127*641a6cfbSDevin Teske -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \ 128*641a6cfbSDevin Teske -sDEVICE=png16m -sOutputFile=bsdconfig%03d.png \ 129*641a6cfbSDevin Teske bsdconfig.ps 130*641a6cfbSDevin Teske 131*641a6cfbSDevin Teske NOTE: Requires `print/ghostscript9' from ports/packages. 132*641a6cfbSDevin Teske 133*641a6cfbSDevin Teske NOTE: The converted PNG files are not suitable for printing 134*641a6cfbSDevin Teske due to loss of quality during the conversion process. 135*641a6cfbSDevin Teske 136*641a6cfbSDevin Teske Extract a single page of the poster into a separate PostScript file for 137*641a6cfbSDevin Teske printing individual pages from the command-line: 138*641a6cfbSDevin Teske 139*641a6cfbSDevin Teske psselect 1 bsdconfig.ps bsdconfig-page1.ps 140*641a6cfbSDevin Teske lpr -h bsdconfig-page1.ps 141*641a6cfbSDevin Teske 142*641a6cfbSDevin Teske NOTE: Change "1" to "2" for the second page, ad-infinitum. 143*641a6cfbSDevin Teske NOTE: Requires `print/psutils-letter' from ports/packages. 144