/whitepapers/doc/dws.book

dws inter-project dependencies tool dws options command

Options:

-h, --help
  • show this help message and exit

  • --clean
  • Be extra careful, this option will remove *siteTop* before executing the build command. As result, everything will be fetched again from *remoteSiteTop* and rebuilt. This option is mostly intended for cron jobs.

  • --config=CONFIG
  • Set the path to the config file instead of deriving it from the current directory.

  • --default
  • Use default answer for every interactive prompt.

  • --exclude=EXCLUDEPATS
  • The specified command will not be applied to projects matching the name pattern.

  • --help-book
  • Print help in docbook format

  • --nolog
  • Do not generate output in the log file

  • --prefix=INSTALLTOP
  • Set the root for installed bin, include, lib, etc.

  • --version
  • Print version information

  • Commands:

    build [remoteIndexFile [localTop]]
  • This bootstrap command will download an index database file, *remoteIndexFile*, and issue a *make* command for all projects which have a *repository* node defined. This command is meant to be used as part of cron jobs on build servers and thus designed to run to completion with no human interaction. As such, in order to be really useful in an automatic build system, authentication to the remote server should also be setup to run with no human interaction.

  • collect
  • Consolidate local dependencies information into a global dependency database. Copy all distribution packages built into a platform distribution directory. (example: dws --exclude test collect)

  • configure
  • Locate direct dependencies of a project on the local machine and create the appropriate symbolic links such that the project can be made later on.

  • context [file]
  • Prints the absolute pathname to a *file*. If the file cannot be found from the current directory up to the workspace root, i.e where the .mk fragment is located (usually *buildTop*, it assumes the file is in *shareDir* alongside other make helpers.

  • duplicate
  • Duplicate a fixed set of pathnames from the remote machine into *duplicateDir* on the local machine. This implements crude backup functionality for the remote server.

  • find bin|lib filename ...
  • Search through a set of directories derived from PATH for *filename*.

  • init
  • Prompt for variables which have not been initialized in the workspace make fragment. Fetch the project index.

  • install [binPackage|project ...]
  • Install a package *binPackage* on the local system or a binary package associated to *project* through either a *package* or *patch* node in the index database or through the local package manager.

  • integrate [ srcPackage ... ]
  • Integrate a patch into a source package

  • list
  • List available projects

  • make
  • Make projects. "make recurse" will build all dependencies required before a project can be itself built.

  • push
  • Push commits to projects checked out in the workspace.

  • status
  • Show status of projects checked out in the workspace with regards to commits.

  • update [ project ... ]
  • Update projects that have a *repository* or *patch* node in the index database and are also present in the workspace by pulling changes from the remote server. "update recurse" will recursively update all dependencies for *project*. If a project only contains a *package* node in the index database, the local system will be modified only if the version provided is greater than the version currently installed.

  • upload [filename ...]
  • Upload the generated log files to the remote machine. Only users with an account can upload to the forum server.

  • upstream [ srcPackage ... ]
  • Generate a patch to submit to upstream maintainer out of a source package and a -patch subdirectory in a project srcDir.

  • Variables defined in the workspace make fragment (dws.mk):

    binDir
  • Root of the tree where executables are installed

  • buildTop
  • Root of the tree where intermediate files are created.

  • darwinTargetVolume
  • Destination of installed packages on a Darwin local machine. Installing on the "LocalSystem" requires administrator privileges.

  • duplicateDir
  • Directory where important directory trees on the remote machine are duplicated.

  • etcDir
  • Root of the tree where extra files are installed

  • includeDir
  • Root of the tree where include files are installed

  • indexFile
  • Index file with projects dependencies information

  • installTop
  • Root of the tree for installed bin/, include/, lib/, ...

  • libDir
  • Root of the tree where libraries are installed

  • logDir
  • Directory where the generated log files are created

  • makeHelperDir
  • Directory to the helper files used in Makefiles (prefix.mk, etc.)

  • remoteIndexFile
  • Index file with projects dependencies information stored on the remote server

  • remoteSiteTop
  • Root of the remote tree that holds the published website (ex: url:/var/cache).

  • remoteSrcTop
  • Root of the tree on the remote machine where repositories are located

  • shareDir
  • Directory where the shared files are installed.

  • siteTop
  • Root of the tree where the website is generated and thus where *remoteSiteTop* is cached on the local system

  • srcTop
  • Root of the tree where the source code under revision control lives on the local machine.