NAME
scriptdist - create a distribution for a perl script
SYNOPSIS
% scriptdist script.pl
DESCRIPTION
The scriptdist program takes a script file and builds, in the current working directory, a Perl script distribution around it. You can add other files to the distribution once it is in place.
This script is designed to be a stand-alone program. You do not need any other files to use it. However, you can create a directory named .scriptdist in your home directory, and scriptdist will look for local versions of template files there. Any files in ~/.scriptdist/t
will show up as is in the script's t directory (until I code the parts to munge those files). The script assumes you have specified your home directory in the environment variable HOME.
You can turn on optional progress and debugging messages by setting the environment variable SCRIPTDIST_DEBUG to a true value.
The process
- Check for release information
-
The first time the scriptdist is run, or any time the scriptdist cannot find the file
.scriptdistrc
, it prompts for CPAN and SourceForge developer information that it can add to the .releaserc file. (NOT YET IMPLEMENTED) - Create a directory named after the script
-
The distribution directory is named after the script name, with a <.d> attached. The suffix is there only to avoid a name conflict. You can rename it after the script is moved into the directory. If the directory already exists, the script stops. You can either move or delete the directory and start again.
- Look for template files
-
The program looks in
.scriptdistrc
for files to copy into the target script distribution directory. After that, it adds more files unless they already exist (i.e. the script found them in the template directory). The script replaces strings matching%%SCRIPTDIST_FOO%%
with the internal value of FOO. The defined values are currently SCRIPT, which substitutes the script name, and VERSION, whose value is currently hard-coded at '0.10'.While looking for files, scriptdist skips directories named CVS, .git, and .svn.
- Add Changes
-
A bare bones Changes file
- Create the Makefile.PL
- Create the t directory
- Add compile.t, pod.t, prereq.t
- Create test_manifest
- Copy the script into the directory
- Run make manifest
- Create git repo
-
Unless you set the
SCRIPTDIST_SKIP_GIT
,scriptdist
creates a git repo, adds everything, and does an initial import.
Creating the Makefile.PL
A few things have to show up in the Makefile.PL---the name of the script and the prerequisites modules are the most important. Luckily, scriptdist can discover these things and fill them in automatically.
TO DO
* add support for Module::Build (command line switch)
* Create Meta.yml file
* Copy modules into lib directory (to create module dist)
* Command line switches to turn things on and off
Maybe a good idea, maybe not
* Add a cover.t and pod coverage test?
* Interactive mode?
* automatically import into Git?
SOURCE AVAILABILITY
This source is part of a Github project.
https://github.com/briandfoy/scriptdist
CREDITS
Thanks to Soren Andersen for putting this script through its paces and suggesting many changes to actually make it work.
AUTHOR
brian d foy, <bdfoy@cpan.org>
COPYRIGHT
Copyright © 2004-2015, brian d foy <bdfoy@cpan.org>. All rights reserved.
You may use this program under the same terms as Perl itself.