ctkBuildTarbal.pl

        Build tarbal and optionally compress it.
        Resulting tarbal may be upload into CPAN.
Options
        -s source subdir (optional, default clickTkDeliver)
        -t target subdir (optional, default clickTkDeliver)
        -v version (mandatory)
        -c compress with gzip (optional, default  don't compress)
        Example:
        ctkBuildTarbal.pl -v 4.011 -c -t /clicktkDeliver
Output
        - tarbal named clickTk-<version>.tar[.gz]
        - log on stdout (list of the tarbal content)
Notes
        This script assumes the UNIX tool library is up and running.
        (its location is given in the constant UNIXTOOLPATH)
        On Unix machines the UNIX tool libray is automatically not used.

Programming notes

Comparison of file names
        Remember that Perl scripts can work with mixed file separators.
        A fact that makes impossible to simply compare file paths using
        the compare operators. Furthermore some systems do not care about case
        sensitivity on file operations.
        See also the method main::_comparePath .
Evaluate main::main
        Method main::main may die. So it must be evaluated
        in order to restore the cwd after an exception.
        This is not necessary when the cwd isn't changed,
        that means when the source subdir is the cwd.
        Open question : may CORE:glob issue a die exception ?
        If this is true, then we have to code a local __die__ exception
        handler to restore the cwd in the method main::_glob .

_comparePath

        Compare the given paths and return true if
        the paths match.
        Thereby the paths are first converted to absolute filepath.
        The file paths are then converted to array which finally are compared items by items.
        If all items match then the return value is 1 otherwise it is 0.
        Remember that PERL scripts can work with mixed file separators.
        Argument
                - filepath 1 (mandatory)
                - filepath 2 (mandatory)
                - force case sensitivity (optional, default 0)
        Return
                1 if filepath 1 and 2 match.
        Exceptions
                - Wrong number of mandatory arguments

_glob

        Execute CORE::glob with the given arguments.
        Return the list of files found or
        the number of files found depending on context.

_collectFiles

        Collect all files existing in the given subdir
        which match the given mask and build the relpath and
        return the list as array or ref to array depending on context.
        Arguments
                subdir
                mask
        Return
                array or ref to array
        Exceptions
                None

_system

        Prepare commands and execute them,
        whereby each command must begin with a command verb.
        Return either an array os status code or a string
        of the concatenated status code depending on context.

_addFiles

        Add the specified files to the given tarbal.
        File names must be relpath related to the source subdir.
        Arguments
                file name of the tarbal
                list of file names
        Returns
                Sum of all status codes received by the add operations
        Exceptions
                file doesn't exists

_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; }

_tarbalName

        Return the name (basename) of the tarbal to be built.
        (as ruled by Perl CPAN)

main

        Set up the tarbal
                - unlink existing tarbal
                - create the tarbal
                - add files
                - compress the tarbal
                - list the tarbal

Unit test output

        2008 04 04 - 11:36:08 ctkBuildTarbal.pl - v 1.01 is starting
        2008 04 04 - 11:36:08  clickTk-4.011/ctk_w.pl
clickTk-4.011/ctkConfigOptions.txt
clickTk-4.011/ctkAssistentFuncList.txt
clickTk-4.011/MANIFEST
clickTk-4.011/README
clickTk-4.011/lib/ctkApplication.pm
clickTk-4.011/lib/ctkAssistent.pm
clickTk-4.011/lib/ctkAssistentModal.pm
clickTk-4.011/lib/ctkBase.pm
clickTk-4.011/lib/ctkBitmap.pm
clickTk-4.011/lib/ctkBtree.pm
clickTk-4.011/lib/ctkCallback.pm
clickTk-4.011/lib/ctkClipboard.pm
clickTk-4.011/lib/ctkCommon.pm
clickTk-4.011/lib/ctkDescriptor.pm
clickTk-4.011/lib/ctkDialogBox.pm
clickTk-4.011/lib/ctkDialogs.pm
clickTk-4.011/lib/ctkDirDialog.pm
clickTk-4.011/lib/ctkDlgConfigSpec.pm
clickTk-4.011/lib/ctkDlgDelegate.pm
clickTk-4.011/lib/ctkDlgGetCode.pm
clickTk-4.011/lib/ctkDlgGetLibraries.pm
clickTk-4.011/lib/ctkFile.pm
clickTk-4.011/lib/ctkFontDialog.pm
clickTk-4.011/lib/ctkHelp.pm
clickTk-4.011/lib/ctkImages.pm
clickTk-4.011/lib/ctkMenu.pm
clickTk-4.011/lib/ctkMenubutton.pm
clickTk-4.011/lib/ctkMenubutton_exception.pm
clickTk-4.011/lib/ctkNumEntry.pm
clickTk-4.011/lib/ctkOptions.pm
clickTk-4.011/lib/ctkParser.pm
clickTk-4.011/lib/ctkPreview.pm
clickTk-4.011/lib/ctkProject.pm
clickTk-4.011/lib/ctkSession.pm
clickTk-4.011/lib/ctkStatusbar.pm
clickTk-4.011/lib/ctkTargetCode.pm
clickTk-4.011/lib/ctkTargetComposite.pm
clickTk-4.011/lib/ctkTargetPackage.pm
clickTk-4.011/lib/ctkTargetScript.pm
clickTk-4.011/lib/ctkTargetSub.pm
clickTk-4.011/lib/ctkTemplate.pm
clickTk-4.011/lib/ctkTemplateString.pm
clickTk-4.011/lib/ctkTools.pm
clickTk-4.011/lib/ctkToplevel.pm
clickTk-4.011/lib/ctkTreeView.pm
clickTk-4.011/lib/ctkUndoStack.pm
clickTk-4.011/lib/ctkWidget.pm
clickTk-4.011/lib/ctkWidgetLib.pm
clickTk-4.011/lib/ctkWidgetOption.pm
clickTk-4.011/lib/ctkWidgetTreeView.pm
clickTk-4.011/lib/ctkWork.pm
clickTk-4.011/lib/ctkXPM.pm
clickTk-4.011/lib/NumEntry.pm
clickTk-4.011/lib/TkAnalysis.pm
clickTk-4.011/lib/x_nonVisual.pm
clickTk-4.011/lib/selectCursor.pl
clickTk-4.011/widgets/after.pl
clickTk-4.011/widgets/Balloon.pl
clickTk-4.011/widgets/BrowseEntry.pl
clickTk-4.011/widgets/Button.pl
clickTk-4.011/widgets/Canvas.pl
clickTk-4.011/widgets/cascade.pl
clickTk-4.011/widgets/checkbutton.pl
clickTk-4.011/widgets/command.pl
clickTk-4.011/widgets/Entry.pl
clickTk-4.011/widgets/Frame.pl
clickTk-4.011/widgets/HList.pl
clickTk-4.011/widgets/Label.pl
clickTk-4.011/widgets/LabEntry.pl
clickTk-4.011/widgets/LabFrame.pl
clickTk-4.011/widgets/Listbox.pl
clickTk-4.011/widgets/Menu.pl
clickTk-4.011/widgets/Menubutton.pl
clickTk-4.011/widgets/menuCheckbutton.pl
clickTk-4.011/widgets/Message.pl
clickTk-4.011/widgets/NoteBook.pl
clickTk-4.011/widgets/NoteBookFrame.pl
clickTk-4.011/widgets/NumEntry.pl
clickTk-4.011/widgets/Optionmenu.pl
clickTk-4.011/widgets/packAdjust.pl
clickTk-4.011/widgets/Pane.pl
clickTk-4.011/widgets/Photo.pl
clickTk-4.011/widgets/Radiobutton.pl
clickTk-4.011/widgets/ROText.pl
clickTk-4.011/widgets/Scale.pl
clickTk-4.011/widgets/Scrollbar.pl
clickTk-4.011/widgets/ScrolledListbox.pl
clickTk-4.011/widgets/ScrolledROText.pl
clickTk-4.011/widgets/ScrolledText.pl
clickTk-4.011/widgets/ScrolledTextUndo.pl
clickTk-4.011/widgets/separator.pl
clickTk-4.011/widgets/Text.pl
clickTk-4.011/widgets/TextEdit.pl
clickTk-4.011/widgets/TextList.pl
clickTk-4.011/widgets/TextUndo.pl
clickTk-4.011/widgets/Tree.pl
clickTk-4.011/widgets/x_nonVisual.pl
clickTk-4.011/widgets/xLabel.pl
clickTk-4.011/templates/explorer.pl
clickTk-4.011/templates/framing_1.pl
clickTk-4.011/templates/skeleton_4_frames.pl
clickTk-4.011/templates/skeleton_File_handling.pl
clickTk-4.011/templates/standard.pl
clickTk-4.011/project/DialogBoxX.pl
clickTk-4.011/project/t_demoArgList.pl
clickTk-4.011/project/t_demoGlobalArgList.pl
clickTk-4.011/project/t_exp_imp.pl
clickTk-4.011/toolbar/balloon_cnf_dlg.txt
clickTk-4.011/toolbar/after.xpm
clickTk-4.011/toolbar/before.xpm
clickTk-4.011/toolbar/copy.xpm
clickTk-4.011/toolbar/cut.xpm
clickTk-4.011/toolbar/delete.xpm
clickTk-4.011/toolbar/duplicate.xpm
clickTk-4.011/toolbar/exit.xpm
clickTk-4.011/toolbar/new.xpm
clickTk-4.011/toolbar/open.xpm
clickTk-4.011/toolbar/options.xpm
clickTk-4.011/toolbar/paste.xpm
clickTk-4.011/toolbar/redo.xpm
clickTk-4.011/toolbar/save.xpm
clickTk-4.011/toolbar/subwidget.xpm
clickTk-4.011/toolbar/undo.xpm
clickTk-4.011/toolbar/viewcode.xpm
clickTk-4.011/images/anchor_center.gif
clickTk-4.011/images/anchor_e.gif
clickTk-4.011/images/anchor_n.gif
clickTk-4.011/images/anchor_ne.gif
clickTk-4.011/images/anchor_nw.gif
clickTk-4.011/images/anchor_s.gif
clickTk-4.011/images/anchor_se.gif
clickTk-4.011/images/anchor_sw.gif
clickTk-4.011/images/anchor_w.gif
clickTk-4.011/images/ctkAbout.gif
clickTk-4.011/images/ctkError.gif
clickTk-4.011/images/ctkInfo.gif
clickTk-4.011/images/ctkInfo_x.gif
clickTk-4.011/images/ctkMissingFile.gif
clickTk-4.011/images/ctkQuestion.gif
clickTk-4.011/images/ctkWarning.gif
clickTk-4.011/images/fill_both.gif
clickTk-4.011/images/fill_x.gif
clickTk-4.011/images/fill_y.gif
clickTk-4.011/images/justify_center.gif
clickTk-4.011/images/justify_left.gif
clickTk-4.011/images/justify_right.gif
clickTk-4.011/images/rel_flat.gif
clickTk-4.011/images/rel_groove.gif
clickTk-4.011/images/rel_raised.gif
clickTk-4.011/images/rel_ridge.gif
clickTk-4.011/images/rel_solid.gif
clickTk-4.011/images/rel_sunken.gif
clickTk-4.011/images/sel1.gif
clickTk-4.011/images/sel2.gif
clickTk-4.011/images/sel3.gif
clickTk-4.011/images/side_bottom.gif
clickTk-4.011/images/side_left.gif
clickTk-4.011/images/side_right.gif
clickTk-4.011/images/side_top.gif
clickTk-4.011/images/SingleFrame.gif
clickTk-4.011/images/SplitFrameH.gif
clickTk-4.011/images/SplitFrameV.gif
clickTk-4.011/images/testAndDemo.gif
clickTk-4.011/images/toolbar.gif
clickTk-4.011/images/undef.gif
clickTk-4.011/images/after.xpm
clickTk-4.011/images/missing.xpm
clickTk-4.011/images/motor.xpm
clickTk-4.011/images/properties.xpm
clickTk-4.011/images/repaint.xpm
clickTk-4.011/images/subwidget.xpm
clickTk-4.011/images/undo.xpm
clickTk-4.011/images/viewcode.xpm
clickTk-4.011/doc/LICENSE.txt
clickTk-4.011/test/demo/hours/cal.pm
clickTk-4.011/test/demo/hours/csv.pm
clickTk-4.011/test/demo/hours/ctkFile.pm
clickTk-4.011/test/demo/hours/dlg_hours.pl
clickTk-4.011/test/demo/hours/dlg_New.pl
clickTk-4.011/test/demo/hours/dlg_options.pl
clickTk-4.011/test/demo/hours/hours.pm
clickTk-4.011/test/demo/hours/Januar2006.csv
clickTk-4.011/test/demo/hours/main.pl
clickTk-4.011/test/demo/hours/main_logic.pl
clickTk-4.011/test/demo/hours/spreadsheet.pm
clickTk-4.011/test/demo/hours/testAndDemo.gif
clickTk-4.011/doc/userDoc/User_doc.txt
clickTk-4.011/doc/userDoc/User_doc.html
clickTk-4.011/doc/userDoc/screens/enter application.jpg
clickTk-4.011/doc/userDoc/screens/enter callbacks code.jpg
clickTk-4.011/doc/userDoc/screens/enter libraries.jpg
clickTk-4.011/doc/userDoc/screens/enter project property.jpg
clickTk-4.011/doc/userDoc/screens/enter variables.jpg
clickTk-4.011/doc/userDoc/screens/enter widget options.jpg
clickTk-4.011/doc/userDoc/screens/insert order.jpg
clickTk-4.011/doc/userDoc/screens/main screen.jpg
clickTk-4.011/doc/userDoc/screens/run project.jpg
clickTk-4.011/doc/userDoc/screens/select widget class.jpg
clickTk-4.011/doc/userDoc/screens/using the assistent.jpg
clickTk-4.011/doc/userDoc/screens/view widget code.jpg
clickTk-4.011/doc/userDoc/screens/view widget structure.jpg
clickTk-4.011/doc/userDoc/screens/screens.html
        2008 04 04 - 11:36:17
        2008 04 04 - 11:36:17 ctkBuildTarbal.pl is exitingDrücken Sie eine beliebige Taste . . .

Back to index