[comment {--- punk::docgen generated from inline doctools comments ---}] [comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] [comment {--- punk::docgen overwrites this file ---}] [manpage_begin punkshell_module_punk::mix::commandset::project 0 0.1.0] [copyright "2023"] [titledesc {dec commandset - project}] [comment {-- Name section and table of contents description --}] [moddesc {deck CLI commandset - project}] [comment {-- Description at end of page heading --}] [require punk::mix::commandset::project] [description] [section Overview] [para] overview of punk::mix::commandset::project [para]Import into an ensemble namespace similarly to the way it is done with punk::mix::cli e.g [example { namespace eval myproject::cli { namespace export * namespace ensemble create package require punk::overlay package require punk::mix::commandset::project punk::overlay::import_commandset project . ::punk::mix::commandset::project punk::overlay::import_commandset projects . ::punk::mix::commandset::project::collection } }] [para] Where the . in the above example is the prefix/command separator [para]The prefix ('project' in the above example) can be any string desired to disambiguate commands imported from other commandsets. [para]The above results in the availability of the ensemble command: ::myproject::cli project.new, which is implemented in ::punk::mix::commandset::project::new [para]Similarly, procs under ::punk::mix::commandset::project::collection will be available as subcommands of the ensemble as projects. [para] [subsection Concepts] [para] see punk::overlay [subsection dependencies] [para] packages used by punk::mix::commandset::project [list_begin itemized] [item] [package {Tcl 8.6}] [item] [package punk::ns] [item] [package sqlite3] (binary) [item] [package overtype] [item] [package textutil] (tcllib) [list_end] [section API] [subsection {Namespace punk::mix::commandset::project}] [para] core commandset functions for punk::mix::commandset::project [list_begin definitions] [call [fun new] [arg newprojectpath_or_name] [opt args]] new project structure - may be dedicated to one module, or contain many. create minimal folder structure only by specifying in args: -modules {} [list_end] [comment {--- end definitions namespace punk::mix::commandset::project ---}] [subsection {Namespace punk::mix::commandset::project::collection}] [para] commandset functions for operating with multiple projects. [para] It would usually be imported with the prefix "projects" and separator "." to result in commands such as: projects.detail [list_begin definitions] [call [fun _default] [arg glob] [opt {option value...}]] [para]List projects under fossil management, showing fossil db location and number of checkouts [para]The glob argument is optional unless option/value pairs are also supplied, in which case * should be explicitly supplied [para]glob restricts output based on the name of the fossil db file e.g s* for all projects beginning with s [para]The _default function is made available in the ensemble by the name of the prefix used when importing the commandset. [para]e.g [para] punk::overlay::import_commandset projects . ::punk::mix::commandset::project::collection [para]Will result in the command being available as projects [list_end] [comment {-- end collection namespace definitions --}] [manpage_end]