I am a one man software shop and have a comprehensive set of CGI programs that I have been installing on various systems for several years. The software is modular not in the CPAN sense but in that clients can get ala carte what they need. Some take everything, some take one part some take 2 or 3 parts. I am regularly building new functionality in so files change or new templates or added etc so I am not working with an always static set of files. What I need is a simpler way to manage my Makefile.PL and the Manifest(s) that are required to setup my program.
Currently, I have my source saved as if the client were getting the whole nine yards. But if they only want a couple of parts I copy everything over to a working directory and strip out all the stuff they aren't buying(3-25 files per component), recreate my manifest, tweak the makefile.pl if it needs it. Usually, I end up leaving something in they didn't pay for and everyone once in a while I take out something I shouldn't have. Which means the install doesn't go well and that is not a good thing. A good part of my clients are at least Perl savvy, so I don't want to give them everything and just change the install program to only install parts.
Does anyone have any clever ideas on how I might set something up that would be much simpler? I am thinking an installer creator, with some sort of config file that would indicate the parts that make up each component, and platform specific files, the program would copy those over to the working directory, and create the Manifest then set some variables so Makefile.PL knows what parts are going to be installed and thus skip installation parts of the other components. On updates all I would need to do is put the new/changed files in the directory structure and update the config file. Or is there something already out there that I haven't heard of that can do this for me?