📄 mktemplate
字号:
: # *-*-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, 1995. All rights reserved.# # The Harvest software was developed by the Internet Research Task# Force Research Group on Resource Discovery (IRTF-RD):# # 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.# Duane Wessels of the University of Colorado at Boulder.# # This copyright notice applies to software in the Harvest# ``src/'' directory only. Users should consult the individual# copyright notices in the ``components/'' subdirectories for# copyright information about other software bundled with the# Harvest source code distribution.# # TERMS OF USE# # The Harvest software may be used and re-distributed without# charge, provided that the software origin and research team are# cited in any use of the system. Most commonly this is# accomplished by including a link to the Harvest Home Page# (http://harvest.cs.colorado.edu/) from the query page of any# Broker you deploy, as well as in the query result pages. These# links are generated automatically by the standard Broker# software distribution.# # 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.# # DERIVATIVE WORKS# # Users may make derivative works from the Harvest software, subject # to the following constraints:# # - 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.# # - You must notify IRTF-RD regarding your distribution of # the derivative work.# # - You must clearly notify users that your are distributing # a modified version and not the original Harvest software.# # - Any derivative product is also subject to these copyright # and use restrictions.# # Note that the Harvest software is NOT in the public domain. We# retain copyright, as specified above.# # HISTORY OF FREE SOFTWARE STATUS# # Originally we required sites to license the software in cases# where they were going to build commercial products/services# around Harvest. In June 1995 we changed this policy. We now# allow people to use the core Harvest software (the code found in# the Harvest ``src/'' directory) for free. We made this change# in the interest of encouraging the widest possible deployment of# the technology. The Harvest software is really a reference# implementation of a set of protocols and formats, some of which# we intend to standardize. We encourage commercial# re-implementations of code complying to this set of standards. # ########################################################################while (<>) { next if (/^\n/o); &print_template() if (/^}/o); $top_line = $_ if (/^\@\w+/o); &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}; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -