| Replace file header scripts: |
| ---------------------------- |
| Author: Gerhard Gappmeier <gerhard.gappmeier [at] ascolab.com> |
| License: These files are distributed under the terms of the GPL. |
| See LICENSE file for more information. |
| |
| Description: This scripts can replace file headers from C/C++/JAVA header and |
| source files. Often it's necessary to replace the license conditions in |
| multiple source files, update the copyright year, or simply make all file |
| headers consistent. This can be a lot of work, so that's why I wrote this |
| scripts. |
| |
| How it works: The BASH script replace_header.sh is a simple wrapper that |
| executes the AWK script remove_header.awk which implements a basic state |
| machine for recognizing C/C++/JAVA comments ("// ...", "/* ... */). |
| All comments at the beginning of the file - also when spanning over multiple |
| lines - are ignored until the first line without comment is reached. The AWK |
| file ignores all this comments, and prints the rest of the file unchanged. |
| The BASH script creates a new file with your new header.template and adds your |
| code without the old file header to the newly created file. Afterwards it |
| copies the new file over the old one. |
| |
| Install: Just unpack the files into your home directory. It will create a |
| directory ~/rh containing all files. Now edit the file ~/rf/header.template |
| to fit your needs. That's it. |
| |
| Usage: ~/rh/replace_header.sh <file> |
| This replaces only the header of the given file. That's how it works, but the |
| power comes in combination with the find utility. See the following example |
| how it works together with find. |
| |
| Example: Recursively change all header files |
| $ cd ~/your/source/dir |
| $ find . -name "*.h" # verify the output to check what is going to be changed. |
| $ find . -name "*.h" -exec ~/rh/replace_header.sh {} \; # Now replace them all. |
| |
| See "man find" for more information on how to use find. |
| |
| ATTENTION: This script changes the files in place, makes no backups, no |
| warnings, no prompts. You should commit all changes to your version control |
| system before using it, or at least backup your files. (You should really use |
| a VCS like SVN, GIT, CVS, etc.) |
| USE THIS ON YOUR OWN RISK! |
| This scripts are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
| WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
| |