3 # $Id: bubblestofile,v 1.1 1996/09/08 01:35:52 jwz Exp $
5 #----------------------------------------------------------------------------
6 # Copyright (C) 1995-1996 James Macnicol
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by the
10 # Free Software Foundation; either version 2, or (at your option) any later
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
15 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 #-----------------------------------------------------------------------------
19 # Contact me (J.Macnicol@student.anu.edu.au) if you have problems.
21 # [ The moral of this story is use a version of rm which safely backs up
22 # files when you delete them in case you do something stupid like
23 # "rm * xpm" which trashed all the scripts in this directory so I had
24 # to write them again. Grrrrrr..... ]
26 #-----------------------------------------------------------------------------
28 # This script takes a set of XPM files (from povbubbles, for example)
29 # whose names are listed in file with extension .names (of same format
30 # as output by povbubbles) and puts them together into a file which can
31 # loaded with the -file option or place in a directory suitable for
32 # use with the -directory option to bubbles. Note that neither of these
33 # options are available if you have just compiled bubbles as provided.
34 # You must edit bubbles.h to enable these. Files generated by this script
35 # have by default the extension ".bub".
37 # To use it, provide as an argument the base-name of the .names file,
38 # i.e. if you ran povbubbles on the file foo.pov by typing "povbubbles foo"
39 # then this created a file "foo.names" so you can now make the loadable file
40 # "foo.bub" by typing "bubblestofile foo".
44 print STDERR "Usage: $0 [-help] base-name\n";
45 print STDERR " -help\n";
46 print STDERR " gives this message.\n";
47 print STDERR " base-name is the name of the file used to generate\n";
48 print STDERR " the XPM files, e.g. if you invoked povbubbles with\n";
49 print STDERR " \"povbubbles foo\"\n";
50 print STDERR " then you should invoke $0 with\n";
55 die "Usage: $0 [-help] base-name\n";
60 # Process command line arguments
66 # Ignore further arguments
70 if ($infile eq undef) {
74 $namesfile = $infile . ".names";
75 $outfile = $infile . ".bub";
77 if (! -f $namesfile) {
78 die("File list $namesfile doesn't exist\n");
82 print "Backing up $outfile\n";
83 system("mv -f $outfile $outfile.bak");
86 open(OUT, ">$outfile") || die("Couldn't open $outfile\n");
87 open(NAMES, $namesfile) || die ("Couldn't open $namesfile\n");
90 if (/\s*(\S+)\:(\S+)\s*/) {
93 open(CAT, $filename) || die("Couldn't open file $filename listed in\
100 print STDERR "Can't understand the line \"$_\"\n";
101 print STDERR " in $namesfile. Ignoring...\n";