ctkBuild.pl - Build a deliverable version

        This script allocates and builds a deliverable version of clickTk
                - load the file structure definition file
                - allocate a new folder for the new version named clickt-<version>
                - copy all mandatory scripts, modules and control files
                  according to the definition structure
                - build the archive
                - test the archive
        Arguments
                -v name [-d][-a] [-s] [-t]
                -v name of the version i.e. 3.099 (mandatory)
                -d set debug mode
                -a suppress creation of the zip archive
                -s source subdir
                -t traget subdir

How to create a new release

                - upgrade the system documentation
                                run the script ctkUdoc.pl twice
                                        once for folder clickTk and
                                        then once again for folder clickTk/lib
                - create the newsletters file README
                - create the file structure named clicktk-<version>.txt
                  i.e clickTk-3.095.txt
                - update the MANIFEST file
                                run the script buildManifest.pl
                - create the deliverable
                                run script ctkBuild.pl -v <version>
                                i.e. perl ctkBuild.pl -v 3.095
                - create the tarbal
                                run script ctlBuildTarbal.pl -v <version>
                                i.e. perl ctkBuildTarbal -v 3.095

Programming notes

None

Methods

_buildName

        Return the name of the build i.e. 'clickTk-4.011'
        (as ruled by Perl CPAN)
=cut

sub _buildName { my $build = shift; return 'clickTk'.'-'. $build; }

_glob

        Execute CORE::glob for the given path and file mask.
        Return list of file names of list length depending on context.

copyAllFiles

        Copy all file contained in the given source subdir
        Arguments
                - source subdir
        Returns
                Number of files successfully copied
        Note
                - it uses the global $source

copyFiles

        Copy the given files into cwd
        Arguments
                - source subdir (rel path to global $source)
                - ref to file list
        Returns
                Number of files successfully copied
        Note
                - it uses the global $source

_mkdirAndChdir

        Create the given subdir into cwd and chdir to it
        Argument
                - subdir (relative to cwd)
        returns
                - true if successfull chdir happened
        Exception
                could not chdir

loadStructure

        Load the file structure definition into memory
        Argument
                - name of the version/release  i.e. 'clickTk-3.095'
        Returns
                - file definition structure as ref to HASH

main

        Parse the given structure and create the file structure accordingly.
        Arguments
                - target subdir (must be absolute path)
                - name of the version to be processed
                - ref to file structure definition

buildArchive

        Build a zip archive using the command line version of winzip.
        Arguments
                - folder containing the data to be zipped
                - name of the archive
        Returns
                return code of the test run of wzunzip
        Note:
                - the archive will contains all subdir/files of the given folder
                - the archive will be stored into the given folder
                - the file name of the archive will be 'clicktk_<name>'
                  where <name> is the name passed to buildArchive.
                - this sub uses the globals $zip and $unzip

Back to index