mkproject - Rapid Project Templating
mkproject.sh name type cost 'description'
where,
name Name of the project
type Programmnig lanuage (pl, py, sh ...)
cost What you wish to charge ($0.99 ...)
'description' A brief description of the project
Must be passed as a single argument
mkproject
is a way to quickly produce the code and documentation
skeletons for a new project and to put these under CVS
version
control. It allows you to "brand" them with your own company and
copyright information, as well specifying a standard license and
pricing (if any).
The package comes with example templates for perl
, python
, and
shell scripts
. These contain some of the standard code you may
want to use with every project.
Also included is an example standard for writing documentation using
the Restructured Text
markdown language.
Finally, a makefile
is included to produce documentation and
release packaging for your project. Documention is automatically
produced in a wide variety of formats including html
,
PostScript
, pdf
, man
, and plain text.
The package comes with a default Makefile
usefull when creating a
FreeBSD
port of your project.
Because everything is template-driven, it is simple to customize the "standard" program and documentation templates to suit your needs. It is also quite straightforward to add support for additional languages.
For example, you almost certainly will want to change the licensing
terms contained in ./common/license.txt
. Once you've edited
that file, every project you create with mkproject
will have
YOUR licensing terms in it.
mkproject
requires certain tools to be properly installed and
configured in order to operate properly. The majority of these have
to do with producing documentation in various output formats from a
Restructured Text source document:
CVS
(You must have this properly configured for checkin, checkout.)python 2.x
docutils
TeX/LaTex
(A full implementaiton w/utilities.)enscript
flip
You also need a modern version of make
, like the one from the GNU
projects. Old BSD type make
utilities will not work.
Before using mkproject
you have to customize it for your
site-specific information. You do this by editing the
.mkprojectrc
file. This branding information is then passed on to
every project you create thereafter.
Once you've edited .mkprojectrc
, you a ready to create a new
project. Recall that you do this:
mkproject.sh name type cost 'description`
This will generate a project under the PROJECTSDIR
directory
defined in .mkproject
, and check them in to CVS
.
Projects created by mkproject
are controlled by a makefile
that allows you to do everything from produce documentation
to package everything for release. The makefile
supports
the following major targets:
docs Produce project documentation is a wide variety of formats
including html, PostScript, pdf, man format, and plain text.
release Create a release tarball in the project's ./Releases
directory. The tarball will contain both the name
and version number of the project.
clean Remove the intermediate files produced during
the documentation process.
scrub Remove (almost) everything, except for the makefile itself
and the support/release directories.
init Scrub the working directory and checkout the last
committed copies from the CVS repository.
version Display the current version of the project.
You can add new language support pretty trivially:
mkproject.sh
and add a stanza to the case
statement
near the top to define the INTERPERTER
and LANGUAGE
variables appropriately to the new language.program.typesuffix
. This should be your default skeleton
code for that language. Do not include the initial header block -
mkproject
will insert it for you.common/makefile
add an enscript
(or other pretty printer
program) stanza to pretty print your program code.mkproject
will fill in
when it creates a new project:You must have a reasonably current version of the shell interpreter installed.
None known as of this release.
mkproject is Copyright (c) 2012 TundraWare Inc., Des Plaines, IL 60018 USA
For terms of use, see the mkproject-license.txt
file in the
program distribution.
If you install mkproject on a FreeBSD system using the 'ports' mechanism, you will also find this file in:
/usr/local/share/doc/mkproject
Tim Daneliuk
mkproject@tundraware.com
$Id: tmkproject.rst,v 1.101 2012/06/01 21:44:35 tundra Exp $
You can find the latest version of this program at:
http://www.tundraware.com/Software/mkproject