Source Code Management consists of a versatile executable to massage source files, generate makefiles, or clean project trees,

Usage output from programmer.exe :

Programmer version 1.3.0 : Aug 23, 2011
Copyright (C) 2004-2011 by William P. Foster, all rights reserved.
This software uses the BFC Toolkit by William P. Foster,
with special thanks to supreme mentor Elie Ahad.
This software uses the FOX Toolkit (http://www.fox-toolkit.org).

Usage: programmer [options]

target_filespec [-b dir] Backup Non-Object files from specifed folder (recursive).
[-c or -clean] Remove *.* from Debug/Release folders, *.o and *~ and *.BAK from current folder
[-d] Codify the file into a sourcefile string named file *.codify [-f performfile] Perform commands in a script file
[-h[s] headerfile] Set Headers to given headerfile, use -hs to get headerfile from above folders if not present
[-l plexfile] Run a set of plex commands
[-m[w]] [sourcedir] Makefile generation - C# mode, w is MSwindows
[-mp[w]] [sourcedir] Makefile generation - C++ mode, w is MSwindows [-q] quiet mode
[-s] specifies recurse subfolders
[-u outfolder] searches given sources for .h includes and deletes .o files from outfolder
[-?] help

---------------------------------------------------------------------

Here are the commands that can be used inside of a plex file (the -l option):
pLex - Version 1.5.2 Aug 18,2011
plex performfile commands include:
    cs_using identifier = value              // put a C# using statement at top of each file
    grep "expression"                            // display with line #s, all occurances of expression
    comments on/off,                            // replace inside of comments? (default=on)
    replace [wholeword, nocase] "a" with "b",        // replace within files
    lftocr                                             // convert linefeeds to carriage-return / linefeed
    del filename                                   // remove specified file apon invocation
    rmdir dirname                                // remove the specified directory apon invocation
    rmo searchstring                            // remove corresponding object file if searchstring found in file