File: mktemplate

package info (click to toggle)
glimpse 4.1-2
  • links: PTS
  • area: non-free
  • in suites: slink
  • size: 2,344 kB
  • ctags: 2,254
  • sloc: ansic: 32,194; makefile: 561; sh: 170; perl: 142
file content (93 lines) | stat: -rwxr-xr-x 3,522 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
: # *-*-perl-*-*
    eval 'exec perl -S $0 "$@"'
    if $running_under_some_shell;  
#
#  mktemplate - Converts an easy-to-write template into a SOIF template.
#               Not very robust.
#
#  Usage: mktemplate [file ...]
#
#  Input format: 
#
#      @FILE { url
#      Attribute-Name-1:\tDATA
#      Attribute-Name-2:\tDATA
#      ...
#      Attribute-Name-n:\tDATA
#      }
#
#  The Attributes must begin in column 0 and have one tab after the colon.
#  And the DATA must be on a single line.
#
#  Darren Hardy, hardy@cs.colorado.edu, May 1994
#
#######################################################################
#
#  Copyright (c) 1994.  All rights reserved.
#          Mic Bowman of Transarc Corporation.
#          Peter Danzig of the University of Southern California.
#          Darren R. Hardy of the University of Colorado at Boulder.
#          Udi Manber of the University of Arizona.
#          Michael F. Schwartz of the University of Colorado at Boulder.
#  
#  This copyright notice applies to all code in Harvest other than subsystems
#  developed elsewhere, which contain other copyright notices in their source
#  text.
#  
#  The Harvest software was developed by the Internet Research Task Force
#  Research Group on Resource Discovery (IRTF-RD).  The Harvest software may
#  be used for academic, research, government, and internal business purposes
#  without charge.  The Harvest software may not be sold or distributed to
#  commercial clients or partners without explicit permission from the
#  copyright holders.
#  
#  The Harvest software is provided "as is", without express or implied
#  warranty, and with no support nor obligation to assist in its use,
#  correction, modification or enhancement.  We assume no liability with
#  respect to the infringement of copyrights, trade secrets, or any patents,
#  and are not responsible for consequential damages.  Proper use of the
#  Harvest software is entirely the responsibility of the user.
#  
#  For those who are using Harvest for non-commercial purposes, you may make
#  derivative works, subject to the following constraints:
#          1. You must include the above copyright notice and these
#             accompanying paragraphs in all forms of derivative works, 
#             and any documentation and other materials related to such
#             distribution and use acknowledge that the software was
#             developed at the above institutions.
#          2. You must notify IRTF-RD regarding your distribution of the
#             derivative work.
#          3. You must clearly notify users that your are distributing a
#             modified version and not the original Harvest software.
#          4. Any derivative product is also subject to the restrictions of
#             the copyright, including distribution and use limitations.
#
#######################################################################
while (<>) {
	next if (/^\n/o);
	do print_template() if (/^}/o);
	$top_line = $_ if (/^\@\w+/o);
	do grab_av($_) if (/^\w+/o);
}

sub grab_av {
	local($line) = @_;
	$attribute = $1, $data = $2 if ($line =~ /^([^:]*):\t(.*)$/o);
	$attribute =~ s/\{\d+\}//;	# remove length if present
	$values{$attribute} = $data;
}

sub print_template {
	print $top_line;
	foreach $k (sort keys %values) {
		next if (length($values{$k}) < 1);
		print $k, "{" , length($values{$k}) , "}:\t";
		print "$values{$k}\n";
	}
	print "}\n\n";

	undef $top_line;
	foreach $k (sort keys %values) {
		undef $values{$k};
	}
}