X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fbubbles-tools%2Fbubblestofile;fp=hacks%2Fbubbles-tools%2Fbubblestofile;h=4eaf5c9b1e4199fd0c4cb96e25ea0ea73e552dbb;hb=b08b6f995f8d5e0ff37d2f627bff3f61dcb75ac5;hp=0000000000000000000000000000000000000000;hpb=ccbc9f87eb59497b23bd0424ee1ed20ad7c7db54;p=xscreensaver diff --git a/hacks/bubbles-tools/bubblestofile b/hacks/bubbles-tools/bubblestofile new file mode 100755 index 00000000..4eaf5c9b --- /dev/null +++ b/hacks/bubbles-tools/bubblestofile @@ -0,0 +1,107 @@ +#!/usr/bin/perl +# +# $Id: bubblestofile,v 1.1 1996/09/08 01:35:52 jwz Exp $ +# +#---------------------------------------------------------------------------- +# Copyright (C) 1995-1996 James Macnicol +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +#----------------------------------------------------------------------------- +# +# Contact me (J.Macnicol@student.anu.edu.au) if you have problems. +# +# [ The moral of this story is use a version of rm which safely backs up +# files when you delete them in case you do something stupid like +# "rm * xpm" which trashed all the scripts in this directory so I had +# to write them again. Grrrrrr..... ] +# +#----------------------------------------------------------------------------- +# +# This script takes a set of XPM files (from povbubbles, for example) +# whose names are listed in file with extension .names (of same format +# as output by povbubbles) and puts them together into a file which can +# loaded with the -file option or place in a directory suitable for +# use with the -directory option to bubbles. Note that neither of these +# options are available if you have just compiled bubbles as provided. +# You must edit bubbles.h to enable these. Files generated by this script +# have by default the extension ".bub". +# +# To use it, provide as an argument the base-name of the .names file, +# i.e. if you ran povbubbles on the file foo.pov by typing "povbubbles foo" +# then this created a file "foo.names" so you can now make the loadable file +# "foo.bub" by typing "bubblestofile foo". +# + +sub die_help { + print STDERR "Usage: $0 [-help] base-name\n"; + print STDERR " -help\n"; + print STDERR " gives this message.\n"; + print STDERR " base-name is the name of the file used to generate\n"; + print STDERR " the XPM files, e.g. if you invoked povbubbles with\n"; + print STDERR " \"povbubbles foo\"\n"; + print STDERR " then you should invoke $0 with\n"; + die(" \"$0 foo\"\n"); +} + +sub die_usage { + die "Usage: $0 [-help] base-name\n"; +} + +$infile = undef; + +# Process command line arguments +while ($op = shift) { + if ($op eq "-help") { + &die_help; + } else { + $infile = $op; + # Ignore further arguments + break; + } +} +if ($infile eq undef) { + &die_usage; +} + +$namesfile = $infile . ".names"; +$outfile = $infile . ".bub"; + +if (! -f $namesfile) { + die("File list $namesfile doesn't exist\n"); +} + +if (-f $outfile) { + print "Backing up $outfile\n"; + system("mv -f $outfile $outfile.bak"); +} + +open(OUT, ">$outfile") || die("Couldn't open $outfile\n"); +open(NAMES, $namesfile) || die ("Couldn't open $namesfile\n"); +$numbubbles = 0; +while () { + if (/\s*(\S+)\:(\S+)\s*/) { + $filename = $1; + $xpmname = $2; + open(CAT, $filename) || die("Couldn't open file $filename listed in\ +$namesfile\n"); + while () { + print OUT; + } + close(CAT); + } else { + print STDERR "Can't understand the line \"$_\"\n"; + print STDERR " in $namesfile. Ignoring...\n"; + } +} +close(NAMES); +close(OUT); + +