PCONVERT(1) User Contributed Perl Documentation PCONVERT(1) NAME pconvert - convert file formats SYNOPSIS pconvert [-check] [-debug] [-gzip] [-option program=options] [-nono] [-out filename] [-overwrite] [-newer] [-remove] [-to type] [-verbose] [name ...] DESCRIPTION Pconvert determines the type of the files named on the command line and tries to convert them to a specified type (defaults to PostScript). It uses internal rules to find a set of commands which can do the task. The file type is determined by file extensions. If the extension in not known or the -check option is given, the first bytes of the file are examined to infer a type. Files with extensions .gz or .Z are assumed to be compressed by gzip(1) or compress(1) respectively and handled transparently. OPTIONS All options may be abbreviated.Boolean options (all options without arguments) may be negated by prefixing them with no. For example use -nocheck to enable file extension checking if your sysadmin had set the default to -check. See the Getopts::Long manpage for details. -check Do not trust file extensions when determining the input file type. -debug Enables some debug output. Not very useful. -gzip Compress output with gzip. -option program=options Pass options to the filter program program if used. This option may be repeated any number of times. The option parsing checks if program is a known filter. To learn about the valid filters, run pconvert without arguments. -nono Do nothing. Just print what would have been done without -nono. -out filename Pconvert normally writes the output to a new file with the same base name as the input file and the type appended as extension. This can be overwritten with the -out option. If filename is '-', pconvert writes to STDOUT. -overwrite, -newer Pconvert does not overwrite existing files 11/Apr/96 perl 1 unless -overwrite or -newer is given. -overwrite forces overwriting. -newer will overwrite only if source is newer. -remove If -remove is set, the original file is removed. -to type Use type as desired output type. You can get a list of valid output types when running pconvert without any arguments. -verbose Print commands before running them. EXAMPLES Here are some examples. Do not be worried about the absolute paths in the produced commands. Pconvert will search for the filters on your system. It may find another pipe, if some of the filters are missing on your system. Converting image formats % pconvert -nono -to tiff ~www/pages/icons/LS6.gif chdir /home/robots/www/pages/icons/ /bin/cat LS6.gif| /usr/local/image-tools/bin/giftopnm| /usr/local/image-tools/bin/pnmtotiff>LS6.tiff If giftopnm is missing, the following plan is generated: % pconvert -nono -to tiff ~www/pages/icons/LS6.gif chdir /home/robots/www/pages/icons/ /bin/cat LS6.gif| /usr/local/image-tools/bin/cjpeg| /usr/local/image-tools/bin/djpeg -pnm| /usr/local/image-tools/bin/pnmtotiff>LS6.tiff Generating images from postscript % pconvert -nono -to gif pconvert.pod /bin/cat pconvert.pod| (/bin/cat > pconvert.$$;/usr/local/ls6/perl/bin/pod2man \ pconvert.$$;/bin/rm pconvert.$$)| /usr/local/groff-1.09/bin/groff -mandoc| /usr/local/X11R5/bin/gs -q -sDEVICE=pbmraw -sOutputFile=- -| /usr/local/image-tools/bin/ppmquant 256| /usr/local/image-tools/bin/ppmtogif>pconvert.gif Generating postscript manpages 11/Apr/96 perl 2 % pconvert -nono pconvert.pod /bin/cat pconvert.pod| (/bin/cat > pconvert.$$;/usr/local/ls6/perl/bin/pod2man \ pconvert.$$;/bin/rm pconvert.$$)| /usr/local/groff-1.09/bin/groff -mandoc>pconvert.ps Building a tar archive from a directory % pconvert -nono -to TAR -gzip image /bin/find image -depth -xdev -type f -print| /usr/local/ls6/unsupported/bin/sun4-sunos/gcpio -Htar -o| /usr/local/bin/gzip -c>image.tar.gz Building a tar archive from a MANIFEST file % pconvert -nono -to TAR -gzip image/MANIFEST /bin/cat image/MANIFEST| /bin/awk '{printf "image/%s\n", $1}'| /usr/local/ls6/unsupported/bin/sun4-sunos/gcpio -Htar -o| /usr/local/bin/gzip -c>image.tar.gz ENVIRONMENT PATH is used in addition to build-in paths to search for programs. SEE ALSO Getopts::Long(3), awk(1), cjpeg(1), compress(1), djpeg(1), gcpio(1), giftopnm(1), gzip(1), pbmtopgm(1), perl(1), pgmtopbm(1), pnmtops(1), pnmtotiff(1), ppmquant(1), ppmtogif(1), tar(1), tifftopnm(1). EXTENSION Extension should be pretty easy. Help safe the world: Please mail your extension to the author. New types To add a new type, just append an entry to the %TYPE hash. Each entry should be a reference to an array containing: o the name of the type, o a regular expression which matches the extension, and o optionally a regular expression which matches the start of the file. Here is the definition of the GIF type: 11/Apr/96 perl 3 GIF => ['\.gif', '^GIF8[79]a'], Add a conversion rule. To add a new filter, just append a an array reference to @RULE. The array should contain the from and to type an the name of the filter program. Here are some examples: [GIF => PPM, 'giftopnm'], [[PPM, PGM, PBM] => GIF, ['ppmquant 256', 'ppmtogif']], [POD => MAN, '(cat > %O.$$; pod2man %O.$$; rm %O.$$;)'], The %O is replaced by the target name (i.e. the name of the output file). AUTHOR Ulrich Pfeifer <pfeifer@ls6.informatik.uni-dortmund.de> 11/Apr/96 perl 4