In Elego ComPact, the meaning of package is flexible, that is, what exactly constitutes a package can be defined in the resource file PkgBase.DefaultData. This file contains a sequence of definitions of package kinds that may be adapted or extended as needed by the user.
As in all ComPact configuration files, lines beginning with `#' are comments. The overall syntax of the file is
Start ::= PackageKindDecl +
PackageKindDecl ::= pkgkind PkgKindName Conditions
InheritedPredicates? InheritedActions* PkgKindAction+
Conditions ::= Expression | Expression and Conditions
Expression ::= dir Filename
| file Filename
| nofile Filename
| dir Dirname
| nodir Dirname
| match PathPattern
| nomatch PathPattern
| hosttype RegExPattern
| ostype RegExPattern
| platform RegExPattern
InheritedPredicates ::= inherit predicates PkgKindName
InheritedActions ::= inherit actions PkgKindName
PkgKindAction ::= action ActionName CommandSequence
So there is a sequence of definitions for different kinds of packages, each starting with the keyword pkgkind followed by a descriptive name, followed by a list of conditions that may be evaluated to check the kind of a package, followed by a list of actions that are applicable to the specified package kind.
Conditions is a list of Expressions concatenated by and. ComPact investigates every directory structure in a collection by applying the expressions of every package kind definition in the given order. If all expressions of a package kind definition yield true, the kind of the package is determined. The check for all conditions can be overriden by a PkgKind file located in the root directory of the package which must contain the correct package kind to be used. It is an error if a package kind name from a PkgKind file is not defined in the PkgBase.DefaultData resource.
Since early in the development of ComPact release 1.2, package kind definitions also support inheritance of predicates (single inheritance) and actions (multiple inheritance). This is accomplished with the keywords `inherit predicates' and `inherit actions' as in the following examples:
pkgkind COMPACT_CC_UNIX
ostype "bsd|unix|linux|sunos5" has dir "src" and dir "inc" and
dir "doc" and file "PkgDesc"
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_VC
inherit actions COMPACT_BUILD
pkgkind COMPACT_SIMPLE_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_SIMPLE
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_SIMPLE
The conditional expressions have the following semantics:
file Filename. The named file exists relative to the root directory of the package.
nofile Filename. The named file does not exist relative to the root directory of the package.
dir Dirname. The named directory exists relative to the root directory of the package.
nodir Dirname. The named directory does not exist relative to the root directory of the package.
match PathPattern. PathPattern is a sequence of regular expressions separated by the pathname separator `/'. The expression is true if a pathname matching the given pattern exists relative to the root dirctory of the package.
nomatch PathPattern. PathPattern is a sequence of regular expressions separated by the pathname separator `/'. The expression is true if no pathname matching the given pattern exists relative to the root dirctory of the package.
hosttype RegExPattern. The regular expression matches the hosttype component of the target-platform-configuration currently in effect.
ostype RegExPattern. The regular expression matches the ostype component of the target-platform-configuration currently in effect.
platform RegExPattern. The regular expression matches the hosttype-ostype component of the target-platform-configuration currently in effect.
An action definition consists of the keyword action followed by a symbolic name followed by a string containing a command sequence which is executed by the internal shell or passed to an external shell for execution. The command sequence must be enclosed in double quotes (`"').
Currently the ComPact project manager uses the following symbolic action names:
| build | buildlocal | shiplocal | shipproject |
| shipglobal | clean | realclean | mkdep |
| isrelease | conflicts | uptodate | modified |
| checkrelease | checkconflicts | checkuptodate | checkmodified |
| currentdeveltag | currentreleasetag | currenttag | commitdevelmajor |
| commitdevelminor | commitdevelpatch | commitreleasemajor | commitreleaseminor |
| commitreleasepatch | update | checkout | getlabel |
| currentlabel | setlabel | listlabels |
As shipped, ComPact knows about packages of the following kind:
COMPACT_CC_UNIX. This is the standard ComPact package structure for C and C++ packages with action definitions for Unix systems.
COMPACT_CC_WIN32. This is the standard ComPact package structure for C and C++ packages with action definitions for Windows systems.
DEC_SRC_M3_UNIX. This is a package type used for Modula-3 packages as used by the Digital Equipment Corporations Modula-3 compiler from the Systems Research Center.
CRITICAL_MASS_M3_UNIX. This is a package type used for Modula-3 packages as used by the Critical Mass Modula-3 compiler with action definitions for Unix systems.
CRITICAL_MASS_M3_WIN32. This is a package type used for Modula-3 packages as used by the Critical Mass Modula-3 compiler with action definitions for Windows systems.
COMPACT_JAVA_UNIX. This is a prototypical package type for Java packages, currently using the IBM jikes compiler and tools from Sun's Java development kit, with action definitions for Unix systems.
COMPACT_SIMPLE_UNIX. This is a simple package kind definition without any structure, containing only a PkgDesc file.
COMPACT_SIMPLE_WIN32. This is a simple package kind definition without any structure, containing only a PkgDesc file.
DEFAULT. This is the default package definition used mainly for checkout and update purposes.
There is a special package kind named DEFAULT at the end of the file, which is used if none of the other kinds matches. This is especially useful if the package doesn't exist because it has not yet been checked out, and so the package kind cannot be determined from the structure in the local workspace.
# ----------------------------------------------------------------------------
# DEC SRC Modula-3 packages
# ----------------------------------------------------------------------------
pkgkind DEC_SRC_M3_UNIX
ostype "bsd|unix|linux|sunos5" has file "src/m3makefile" and dir "src"
inherit actions BASIC_VC_UNIX_OVERRIDES
inherit actions BASIC_VC
action build "m3build {?OPT} {?M3BUILDOPT} 2> .errors && m3err .errors"
action buildlocal "m3build {?OPT} {?M3BUILDOPT} {?optVerbose} {?optQuiet} -O 2> .errors && m3err .errors"
action shipglobal "m3ship {?OPT} {?M3SHIPOPT} {?optVerbose} {?optQuiet} 2> .errors && m3err .errors"
action shipproject "m3ship {?OPT} {?M3SHIPOPT} {?optVerbose} {?optQuiet} 2> .errors && m3err .errors"
action shiplocal "echo no shipping needed"
action clean "m3build {?OPT} {?M3BUILDOPT} {?optVerbose} {?optQuiet} clean 2> .errors && m3err .errors"
action realclean "rm {?OPT} {?RMOPT} -f PkgDep PkgCDT PkgCRT .errors ; m3build clean"
action mkdep "m3dep {?OPT} > PkgDep ; m3ovr -v {:LOCATIONS} > src/m3overrides 2> /dev/null"
# ----------------------------------------------------------------------------
# DEC SRC Modula-3 packages on NT
# ----------------------------------------------------------------------------
pkgkind DEC_SRC_M3_WIN32
ostype "winnt|windows|win32|nt" has file "src/m3makefile" and dir "src"
#action externalshell "cmd.exe /c "
inherit actions BASIC_VC
action build "m3build {?OPT} {?M3BUILDOPT} 2> PkgErr && m3err PkgErr"
action buildlocal "m3build {?OPT} {?M3BUILDOPT} -O 2> PkgErr && m3err PkgErr"
action shipglobal "m3ship {?OPT} {?M3SHIPOPT} 2> PkgErr && m3err PkgErr"
action shipproject "m3ship {?OPT} {?M3SHIPOPT} 2> PkgErr && m3err PkgErr"
action shiplocal "echo no shipping needed"
action clean "m3build {?OPT} {?M3BUILDOPT} clean 2> PkgErr && m3err PkgErr"
action realclean "del {?OPT} {?DELOPT} PkgDep PkgCDT PkgCRT PkgErr ; m3build clean"
#action mkdep "m3dep {?OPT} {?M3DEPOPT} > PkgDep"
action mkdep "m3dep {?OPT} {?M3DEPOPT} > PkgDep && m3ovr -v {!LOCATIONS} > src/m3overrides 2> PkgErr"
# ----------------------------------------------------------------------------
# Critical Mass Reactor Modula-3 packages
# ----------------------------------------------------------------------------
pkgkind CRITICAL_MASS_M3_UNIX
ostype "bsd|unix|linux|sunos5" has file "src/m3makefile" and dir "src"
inherit actions BASIC_VC_UNIX_OVERRIDES
inherit actions BASIC_VC
action build "cm3 {?OPT} {?CM3OPT} -build 2> .errors && m3err .errors"
action buildlocal "cm3 {?OPT} {?CM3OPT} -build -override 2> .errors && m3err .errors"
action shipglobal "cm3 {?OPT} {?CM3OPT} -ship 2> .errors && m3err .errors"
action shipproject "cm3 {?OPT} {?CM3OPT} -ship 2> .errors && m3err .errors"
action shiplocal "echo no shipping needed"
action clean "cm3 {?OPT} {?CM3OPT} -clean 2> .errors && m3err .errors"
action realclean "rm {?OPT} {?RMOPT} -f PkgDep PkgCDT PkgCRT .errors ; cm3 -clean"
action mkdep "m3dep {?OPT} {?M3DEPOPT} > PkgDep ; m3ovr -v {!LOCATIONS} > src/m3overrides 2> /dev/null"
# ----------------------------------------------------------------------------
# Critical Mass Reactor Modula-3 packages
# ----------------------------------------------------------------------------
pkgkind CRITICAL_MASS_M3_WIN32
ostype "winnt|windows|win32|nt" has file "src/m3makefile" and dir "src"
#action externalshell "cmd.exe /c "
inherit actions BASIC_VC
action build "cm3 {?OPT} {?CM3OPT} -build 2> PkgErr && m3err PkgErr"
action buildlocal "cm3 {?OPT} {?CM3OPT} -build -override 2> PkgErr && m3err PkgErr"
action shipglobal "cm3 {?OPT} {?CM3OPT} -ship 2> PkgErr && m3err PkgErr"
action shipproject "cm3 {?OPT} {?CM3OPT} -ship 2> PkgErr && m3err PkgErr"
action shiplocal "echo no shipping needed"
action clean "cm3 {?OPT} {?CM3OPT} -clean 2> PkgErr && m3err PkgErr"
action realclean "del {?OPT} {?DELOPT} PkgDep PkgCDT PkgCRT PkgErr ; cm3 -clean"
#action mkdep "m3dep {?OPT} {?M3DEPOPT} > PkgDep"
action mkdep "m3dep {?OPT} {?M3DEPOPT} > PkgDep && m3ovr -v {!LOCATIONS} > src/m3overrides 2> PkgErr"
# ----------------------------------------------------------------------------
# COMPACT C and C++ packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_CC_UNIX
ostype "bsd|unix|linux|sunos5" has dir "src" and dir "inc" and
dir "doc" and file "PkgDesc"
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_VC
inherit actions COMPACT_BUILD
# ----------------------------------------------------------------------------
# COMPACT C and C++ packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_CC_WIN32
ostype "winnt|windows|win32|nt" has dir "src" and dir "inc" and
dir "doc" and file "PkgDesc"
inherit actions COMPACT_VC
inherit actions COMPACT_BUILD
# ----------------------------------------------------------------------------
# COMPACT JAVA packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_JAVA_UNIX
ostype "bsd|unix|linux|sunos5" has dir "java" and
dir "html" and file "PkgDesc"
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_VC
inherit actions COMPACT_BUILD
# ----------------------------------------------------------------------------
# COMPACT SIMPLE packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_SIMPLE_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_SIMPLE
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_SIMPLE
pkgkind COMPACT_SIMPLE_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_SIMPLE
inherit actions COMPACT_SIMPLE
pkgkind COMPACT_SIMPLE
inherit predicates COMPACT_PKG
inherit actions COMPACT_VC
action build "-"
action buildlocal "-"
action shipglobal "-"
action shipproject "-"
action shiplocal "-"
action clean "-"
action realclean "rm {?OPT} {?RMOPT} -f PkgDep PkgCDT PkgCRT .errors ; pkgm {?PKGMOPT} -F -realclean"
action mkdep "-"
# ----------------------------------------------------------------------------
# COMPACT project management packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_PRJM_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_PRJM
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_PRJM
pkgkind COMPACT_PRJM_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_PRJM
inherit actions COMPACT_PRJM
pkgkind COMPACT_PRJM
inherit predicates COMPACT_PRJ
inherit actions COMPACT_VC
action build "prjm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -buildglobal"
action buildlocal "prjm {?OPT} {?PRJMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -buildlocal"
action shipglobal "echo 'shipping of sub-projects disabled'"
action shipproject "echo 'shipping of sub-projects disabled'"
action shiplocal "echo 'shipping of sub-projects disabled'"
action clean "prjm {?OPT} {?PRJMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -clean"
action realclean "prjm {?OPT} {?PRJMOPT} {?optForce} -realclean"
action mkdep "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -deps"
# ----------------------------------------------------------------------------
# probably BROKEN packages with only a PkgTags, PkgDep, PkgCRT, or PkgCDT
# file left
# ----------------------------------------------------------------------------
pkgkind COMPACT_PKG_TAGS_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_PKG_TAGS
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_PKG_TAGS
pkgkind COMPACT_PKG_TAGS_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_PKG_TAGS
inherit actions COMPACT_PKG_TAGS
pkgkind COMPACT_PKG_DEPS_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_PKG_DEPS
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_PKG_DEPS
pkgkind COMPACT_PKG_DEPS_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_PKG_DEPS
inherit actions COMPACT_PKG_DEPS
pkgkind COMPACT_PKG_CRT_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_PKG_CRT
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_PKG_CRT
pkgkind COMPACT_PKG_CRT_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_PKG_CRT
inherit actions COMPACT_PKG_CRT
pkgkind COMPACT_PKG_CDT_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_PKG_CDT
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_PKG_CDT
pkgkind COMPACT_PKG_CDT_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_PKG_CDT
inherit actions COMPACT_PKG_CDT
pkgkind M3_OVR_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates M3_OVR
inherit actions BASIC_VC_UNIX_OVERRIDES
inherit actions M3_OVR
pkgkind M3_OVR_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates M3_OVR
inherit actions M3_OVR
pkgkind COMPACT_PRJ_SNAPS_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates COMPACT_PRJ_SNAPS
inherit actions COMPACT_VC_UNIX_OVERRIDES
inherit actions COMPACT_PRJ_SNAPS
pkgkind COMPACT_PRJ_SNAPS_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates COMPACT_PRJ_SNAPS
inherit actions COMPACT_PRJ_SNAPS
pkgkind M3_OVR
has file src/m3overrides
inherit actions BASIC_VC
# ----------------------------------------------------------------------------
# COMPACT_PKG packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_PKG
has file "PkgDesc"
inherit actions COMPACT_VC
pkgkind COMPACT_PKG_TAGS
has file "PkgTags"
inherit actions COMPACT_VC
pkgkind COMPACT_PKG_DEPS
has file "PkgDep"
inherit actions COMPACT_VC
pkgkind COMPACT_PKG_CRT
has file "PkgCRT"
inherit actions COMPACT_VC
pkgkind COMPACT_PKG_CDT
has file "PkgCDT"
inherit actions COMPACT_VC
# ----------------------------------------------------------------------------
# COMPACT_PRJ packages
# ----------------------------------------------------------------------------
pkgkind COMPACT_PRJ
has file "PrjDesc"
inherit actions COMPACT_VC
pkgkind COMPACT_PRJ_SNAPS
has dir "snaps"
inherit actions COMPACT_VC
# ----------------------------------------------------------------------------
# BASIC_VC_MAKE
# ----------------------------------------------------------------------------
pkgkind BASIC_VC_MAKE_UNIX
ostype "bsd|unix|linux|sunos5"
inherit predicates BASIC_VC_MAKE
inherit actions BASIC_VC_UNIX_OVERRIDES
inherit actions BASIC_VC_MAKE
pkgkind BASIC_VC_MAKE_WIN32
ostype "winnt|windows|win32|nt"
inherit predicates BASIC_VC_MAKE
inherit actions BASIC_VC_MAKE
pkgkind BASIC_VC_MAKE
has file "Makefile"
inherit actions BASIC_VC
inherit actions MAKE_BUILD
# ----------------------------------------------------------------------------
# MAKE_BUILD actions
# ----------------------------------------------------------------------------
pkgkind MAKE_BUILD
ostype none
action build "make {?OPT} {?MAKEOPT} all install"
action buildlocal "make {?OPT} {?MAKEOPT}"
action shipglobal "make {?OPT} {?MAKEOPT} shipglobal"
action shipproject "make {?OPT} {?MAKEOPT} shipproject"
action shiplocal "make {?OPT} {?MAKEOPT} shiplocal"
action clean "make {?OPT} {?MAKEOPT} clean"
action realclean "make {?OPT} {?MAKEOPT} realclean"
action mkdep "make {?OPT} {?MAKEOPT} depend"
# ----------------------------------------------------------------------------
# COMPACT_BUILD actions
# ----------------------------------------------------------------------------
pkgkind COMPACT_BUILD
ostype none
action build "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -build"
action buildlocal "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -build"
action shipglobal "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -ship global"
action shipproject "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -ship project"
action shiplocal "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -ship local"
action clean "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -clean"
action realclean "rm {?OPT} {?RMOPT} -f PkgDep PkgCDT PkgCRT .errors PkgTmp ; pkgm {?PKGMOPT} -F -realclean"
action mkdep "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -deps"
# ----------------------------------------------------------------------------
# COMPACT_VC actions
# ----------------------------------------------------------------------------
pkgkind COMPACT_VC_UNIX_OVERRIDES
ostype none
action isrelease "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -isrelease > /dev/null"
action conflicts "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -conflicts > /dev/null"
action uptodate "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -uptodate > /dev/null"
action modified "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -modified > /dev/null"
pkgkind COMPACT_VC
ostype none
action isrelease "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -isrelease > PkgTmp"
action conflicts "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -conflicts > PkgTmp"
action uptodate "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -uptodate > PkgTmp"
action modified "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -modified > PkgTmp"
action checkrelease "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -isrelease"
action checkconflicts "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -conflicts"
action checkuptodate "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -uptodate"
action checkmodified "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -modified"
action currentdeveltag "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -cdt > PkgCDT"
action currentreleasetag "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -crt > PkgCRT"
action currenttag "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -ct > PkgCT"
action commitdevelmajor "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -commit major"
action commitdevelminor "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -commit minor"
action commitdevelpatch "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -commit patch"
action commitreleasemajor "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -release major"
action commitreleaseminor "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -release minor"
action commitreleasepatch "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -release patch"
action update "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -update {!TAG}"
action checkout "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -c {!LOCATION} -checkout {!TAG} {!PKG}"
action getlabel "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -getlabel {:TAG} > .label"
action currentlabel "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -getlabel > .label"
action setlabel "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -setlabel {!TAG} {!LABEL}"
action listlabels "pkgm {?OPT} {?PKGMOPT} {?optForce} {?optVerbose} {?optDebug} {?optQuiet} -listlabels > .labels"
action diff "pkgm {?OPT} {?PKGMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff {?selectedFiles}"
action diff1 "pkgm {?OPT} {?PKGMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff -t {!TAG1} {?selectedFiles}"
action diff2 "pkgm {?OPT} {?PKGMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff -t {!TAG1} -t {!TAG2} {?selectedFiles}"
action merge "pkgm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -merge {!TAG1}"
action merge2 "pkgm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -merge {!TAG1} {!TAG2}"
# ----------------------------------------------------------------------------
# BASIC_VC actions
# ----------------------------------------------------------------------------
pkgkind BASIC_VC_UNIX_OVERRIDES
ostype none
action isrelease "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -isrelease > /dev/null"
action conflicts "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -conflicts > /dev/null"
action uptodate "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -uptodate > /dev/null"
action modified "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -modified > /dev/null"
pkgkind BASIC_VC
ostype none
action isrelease "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -isrelease > PkgTmp"
action conflicts "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -conflicts > PkgTmp"
action uptodate "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -uptodate > PkgTmp"
action modified "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -modified > PkgTmp"
action checkrelease "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -isrelease"
action checkconflicts "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -conflicts"
action checkuptodate "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -uptodate"
action checkmodified "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -modified"
action currentdeveltag "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -cdt > PkgCDT"
action currentreleasetag "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -crt > PkgCRT"
action currenttag "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -ct > PkgCT"
action commitdevelmajor "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -commit major"
action commitdevelminor "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -commit minor"
action commitdevelpatch "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -commit patch"
action commitreleasemajor "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -release major"
action commitreleaseminor "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -release minor"
action commitreleasepatch "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -release patch"
action update "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -update {!TAG}"
action checkout "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -c {!LOCATION} -checkout {!TAG} {!PKG}"
action getlabel "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -getlabel {:TAG} > .label"
action currentlabel "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -getlabel > .label"
action setlabel "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -setlabel {!TAG} {!LABEL}"
action listlabels "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -listlabels > .labels"
action diff "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff {?selectedFiles}"
action diff1 "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff -t {!TAG1} {?selectedFiles}"
action diff2 "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff -t {!TAG1} -t {!TAG2} {?selectedFiles}"
action merge "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -merge {!TAG1}"
action merge2 "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -merge {!TAG1} {!TAG2}"
# ----------------------------------------------------------------------------
# DEFAULT package descriptions for fall-back definitions
# ----------------------------------------------------------------------------
pkgkind DEFAULT
# The next predicate should be FALSE every time
has dir "yXyXyx" and file "rQp7654RfVq99"
action update "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -update {!TAG}"
action checkout "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -c {!LOCATION} -checkout {!TAG} {!PKG}"
action getlabel "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -getlabel {:TAG} > .label"
action currentlabel "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -getlabel > .label"
action setlabel "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -setlabel {!TAG} {!LABEL}"
action listlabels "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -listlabels > .labels"
action currentdeveltag "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -cdt > PkgCDT"
action currentreleasetag "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -crt > PkgCRT"
action currenttag "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -ct > PkgCT"
action diff "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff {?selectedFiles}"
action diff1 "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff -t {!TAG1} {?selectedFiles}"
action diff2 "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -{?diffPrefix}diff -t {!TAG1} -t {!TAG2} {?selectedFiles}"
action merge "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -merge {!TAG1}"
action merge2 "pkgvm {?OPT} {?PKGVMOPT} {?optVerbose} {?optDebug} {?optQuiet} -merge {!TAG1} {!TAG2}"