awips2/cave/build/tools/headup
2017-04-21 18:33:55 -06:00
..
AWIPS initial commit 2017-04-21 18:33:55 -06:00
DefaultFileTypes initial commit 2017-04-21 18:33:55 -06:00
Source initial commit 2017-04-21 18:33:55 -06:00
headup initial commit 2017-04-21 18:33:55 -06:00
headup-awips initial commit 2017-04-21 18:33:55 -06:00
headup-batch initial commit 2017-04-21 18:33:55 -06:00
headup-dir initial commit 2017-04-21 18:33:55 -06:00
README initial commit 2017-04-21 18:33:55 -06:00
Test.tar.bz2 initial commit 2017-04-21 18:33:55 -06:00

**
* This software was developed and / or modified by Raytheon Company, 
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
* 
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
* 
* Contractor Name:        Raytheon Company
* Contractor Address:     6825 Pine Street, Suite 340
*                         Mail Stop B8
*                         Omaha, NE 68106
*                         402.291.0100
* 
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**

Header Updater
==============

Update or add a text header to a file.

headup             - update a single file
headup-batch       - update multiple files
headup-dir         - update all files in dir

For usage and option information refer to the -h, --help command option

FileType Configuration Files
============================

The FileType .cfg files define the block and line comment symbols to use
for a given filetype.  The FileType.cfg file also defines the template
to use when formatting the header and searching for an existing header.

=Section=
The section defines the filetype extension to use when matching filetypes

Example:
[.java]

=Keys=
The keys define the types of comments, symbols, and template to use
for the filetype.  If a filetype doesn't have a certain type of comment
type such as block comments, exclude the key.

Valid keys are:
blockBegin			- defines block comment begin symbol
blockEnd			- defines block comment end symbol
lineComment			- defines the line comment symbol
lineTemplate		- template for each line within the header
headerTemplate		- template for the entire header
placeAfter			- regular expression denfining where to place a new 
					  header
requirePlaceAfter	- requires the placeAfter be located before inserting
					  a new header.  If not defined, defaults to True.

==Re-using Keys==
Keys may be re-used within a fileType configuration by placing the key 
name as %(keyname)s  Additional Keys values are also available:
 - %(space)s
 - %(headerText)s
 - %(lineText)s

=Tips=
 - whitespace is trimed from the beginning of values so use the %(space)s
   variable where needed
 - Multi-line values must be preceeded by a space
 
Filter Files
============

The Filter.csv files controls which files will be fed to headup-dir
The exclude patterns filters out any files passed through by the include
patterns; the order of filtering is include -> exclude

CSV format is as follows:
filterType,pattern,comment

filterType    - may be include,exclude,includeRegex,excludeRegex,includeFiletype

Example
=======

find BatchTest/ -type f | headup-batch -i .backup -s "Copyright all" \
	-t "allHeader.txt"

Recursively update all files in BatchTest
-i perform in-place updating and create backups ending in .backup
-s search for an existing header with the contents "Copyright all"
-t use the text from allHeader.txt for the updated header

If something goes wrong and we need to revert the entire update:

find BatchTest/ -type f | headup-batch -r .backup

find BatchTest/ -type f | headup-batch -S "(?=TEST COMPANY|Copyright all)" \
	-t "allHeader.txt"
-S search for an existing header that contains either "TEST COMPANY" or
   "Copyright all"
   
Test
====

Developement tests are included in the Test archive.  They have been
archived to ensure that they don't accidently get modified by a headup
run against them.