diff options
Diffstat (limited to 'tcllib/support/installation')
-rw-r--r-- | tcllib/support/installation/actions.tcl | 112 | ||||
-rwxr-xr-x | tcllib/support/installation/main.tcl | 5 | ||||
-rw-r--r-- | tcllib/support/installation/man.macros | 267 | ||||
-rwxr-xr-x | tcllib/support/installation/modules.tcl | 173 | ||||
-rw-r--r-- | tcllib/support/installation/version.tcl | 30 |
5 files changed, 587 insertions, 0 deletions
diff --git a/tcllib/support/installation/actions.tcl b/tcllib/support/installation/actions.tcl new file mode 100644 index 0000000..6978bf8 --- /dev/null +++ b/tcllib/support/installation/actions.tcl @@ -0,0 +1,112 @@ +# -*- tcl -*- + +# This file holds the commands determining the files to install. They +# are used by the installer to actually perform the installation, and +# by 'sak' to get the per-module lists of relevant files. The +# different purposes are handled through the redefinition of the +# commands [xcopy] and [xcopyf] used by the commands here. + +proc _null {args} {} + +proc _tcl {module libdir} { + global distribution + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 0 *.tcl + return +} + +proc _tcr {module libdir} { + global distribution + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 1 *.tcl + return +} + +proc _rde {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module rde_critcl] \ + [file join $libdir $module rde_critcl] \ + 1 + return +} + +proc _doc {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module mpformats] \ + [file join $libdir $module mpformats] \ + 1 + return +} + +proc _msg {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module msgs] \ + [file join $libdir $module msgs] \ + 1 + return +} + +proc _tex {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 0 *.tex + return +} + +proc _tci {module libdir} { + global distribution + + _tcl $module $libdir + xcopyfile [file join $distribution modules $module tclIndex] \ + [file join $libdir $module] + return +} + +proc _trt {module libdir} { + global distribution + + _tcr $module $libdir + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 0 *.template + return +} + +proc _manfile {f format ext docdir} { return } +proc _man {module format ext docdir} { return } + +proc _exa {module exadir} { + global distribution + xcopy \ + [file join $distribution examples $module] \ + [file join $exadir $module] \ + 1 + return +} + +proc _exax {actual module exadir} { + global distribution + xcopy \ + [file join $distribution examples $actual] \ + [file join $exadir $module] \ + 1 + return +} diff --git a/tcllib/support/installation/main.tcl b/tcllib/support/installation/main.tcl new file mode 100755 index 0000000..2a2aea3 --- /dev/null +++ b/tcllib/support/installation/main.tcl @@ -0,0 +1,5 @@ +# -*- tcl -*- +# Entrypoint for starkit and -pack based distributions + +# Delegate to the installer application +source [file join [file dirname [info script]] installer.tcl] diff --git a/tcllib/support/installation/man.macros b/tcllib/support/installation/man.macros new file mode 100644 index 0000000..ddd073d --- /dev/null +++ b/tcllib/support/installation/man.macros @@ -0,0 +1,267 @@ +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. diff --git a/tcllib/support/installation/modules.tcl b/tcllib/support/installation/modules.tcl new file mode 100755 index 0000000..c90ae8b --- /dev/null +++ b/tcllib/support/installation/modules.tcl @@ -0,0 +1,173 @@ +# -*- tcl -*- +# -------------------------------------------------------------- +# List of modules to install and definitions guiding the process of +# doing so. +# +# This file is shared between 'installer.tcl' and 'sak.tcl', like +# 'package_version.tcl'. The swiss army knife requires access to the +# data in this file to be able to check if there are modules in the +# directory hierarchy, but missing in the list of installed modules. +# -------------------------------------------------------------- + +proc Exclude {m} {global excluded ; lappend excluded $m ; return } +proc Application {a} {global apps ; lappend apps $a ; return } + +proc Module {m pkg doc exa} { + global modules guide + + lappend modules $m + set guide($m,pkg) $pkg + set guide($m,doc) $doc + set guide($m,exa) $exa + return +} + +set excluded [list] +set modules [list] +set apps [list] +array set guide {} + +# -------------------------------------------------------------- +# @@ Registration START + +Exclude calendar +Exclude exif + +# name pkg doc example +Module aes _tcl _man _null +Module amazon-s3 _tcl _man _null +Module asn _tcl _man _null +Module base32 _tcl _man _null +Module base64 _tcl _man _null +Module bee _tcl _man _null +Module bench _tcl _null _null +Module bibtex _tcl _man _exa +Module blowfish _tcl _man _null +Module cache _tcl _man _null +Module calendar _tci _man _null +Module clock _tcl _man _null +Module cmdline _tcl _man _null +Module comm _tcl _man _null +Module control _tci _man _null +Module coroutine _tcl _null _null +Module counter _tcl _man _null +Module crc _tcl _man _null +Module cron _tcl _man _null +Module csv _tcl _man _exa +Module debug _tcl _null _null +Module des _tcl _man _null +Module dicttool _tcl _man _null +Module dns _msg _man _exa +Module docstrip _tcl _man _null +Module doctools _doc _man _exa +Module doctools2base _tcl _man _null +Module doctools2idx _tcl _man _null +Module doctools2toc _tcl _man _null +Module dtplite _tcl _man _null +Module exif _tcl _man _null +Module fileutil _tcl _man _null +Module ftp _tcl _man _exa +Module ftpd _tcl _man _exa +Module fumagic _tcl _man _null +Module generator _tcl _man _null +Module gpx _tcl _null _null +Module grammar_aycock _tcl _man _null +Module grammar_fa _tcl _man _null +Module grammar_me _tcl _man _null +Module grammar_peg _tcl _man _null +Module hook _tcl _man _null +Module http _tcl _man _null +Module httpd _tcl _man _exa +Module httpwget _tcl _null _null +Module html _tcl _man _null +Module htmlparse _tcl _man _exa +Module ident _tcl _man _null +Module imap4 _tcl _man _null +Module inifile _tcl _man _null +Module interp _tcl _man _null +Module irc _tcl _man _exa +Module javascript _tcl _man _null +Module jpeg _tcl _man _null +Module json _tcl _man _null +Module lambda _tcl _man _null +Module ldap _tcl _man _exa +Module log _msg _man {_exax logger} +Module markdown _tcl _man _null +Module map _tcl _man _null +Module mapproj _tcl _man _exa +Module math _tci _man _exa +Module md4 _tcl _man _null +Module md5 _tcl _man _null +Module md5crypt _tcl _man _null +Module mime _tcl _man _exa +Module multiplexer _tcl _man _null +Module namespacex _tcl _man _null +Module ncgi _tcl _man _null +Module nettool _tcl _man _null +Module nmea _tcl _man _null +Module nns _tcl _man _null +Module nntp _tcl _man _exa +Module ntp _tcl _man _exa +Module oauth _tcl _man _null +Module oodialect _tcl _man _null +Module oometa _tcl _man _null +Module ooutil _tcl _man _null +Module otp _tcl _man _null +Module page _trt _man _null +Module pki _tcl _man _null +Module pluginmgr _tcl _man _null +Module png _tcl _man _null +Module pop3 _tcl _man _null +Module pop3d _tcl _man _null +Module processman _tcl _man _null +Module profiler _tcl _man _null +Module pt _rde _man _null +Module rc4 _tcl _man _null +Module rcs _tcl _man _null +Module report _tcl _man _null +Module rest _tcl _man _null +Module ripemd _tcl _man _null +Module sasl _tcl _man _exa +Module sha1 _tcl _man _null +Module simulation _tcl _man _null +Module smtpd _tcl _man _exa +Module snit _tcl _man _null +Module soundex _tcl _man _null +Module stooop _tcl _man _null +Module string _tcl _man _null +Module stringprep _tcl _man _null +Module struct _tcl _man _exa +Module tar _tcl _man _null +Module tepam _tcl _man _exa +Module term _tcr _man _exa +Module textutil _tex _man _null +Module tie _tcl _man _exa +Module tiff _tcl _man _null +Module tool _tcl _man _null +Module tool_datatype _tcl _man _null +Module transfer _tcl _man _null +Module treeql _tcl _man _null +Module try _tcl _man _null +Module uev _tcl _man _null +Module units _tcl _man _null +Module uri _tcl _man _null +Module uuid _tcl _man _null +Module valtype _tcl _null _null +Module virtchannel_base _tcl _man _null +Module virtchannel_core _tcl _man _null +Module virtchannel_transform _tcl _man _null +Module websocket _tcl _man _null +Module wip _tcl _man _null +Module yaml _tcl _man _null +Module zip _tcl _null _null + +Application dtplite +Application nns +Application nnsd +Application nnslog +Application page +Application pt +Application tcldocstrip + +# @@ Registration END +# -------------------------------------------------------------- diff --git a/tcllib/support/installation/version.tcl b/tcllib/support/installation/version.tcl new file mode 100644 index 0000000..42f6608 --- /dev/null +++ b/tcllib/support/installation/version.tcl @@ -0,0 +1,30 @@ +package_version 1.18 +package_name tcllib + +dist_exclude config +dist_exclude modules/ftp/example +dist_exclude modules/ftpd/examples +dist_exclude modules/stats +dist_exclude modules/fileinput + +critcl_main tcllibc tcllibc.tcl +critcl base64c {base64/base64c.tcl base64/uuencode.tcl base64/yencode.tcl} +critcl crcc {crc/crcc.tcl crc/sum.tcl crc/crc32.tcl} +critcl jsonc json/jsonc.tcl +critcl md4c md4/md4c.tcl +critcl md5c md5/md5c.tcl +critcl md5cryptc md5crypt/md5cryptc.tcl +critcl rc4c rc4/rc4c.tcl +critcl sha1c sha1/sha1c.tcl +critcl sha256c sha1/sha256c.tcl +critcl uuid uuid/uuid.tcl +critcl struct_treec struct/tree_c.tcl +critcl struct_graphc struct/graph_c.tcl +critcl struct_setc struct/sets_c.tcl +critcl struct_stackc struct/stack_c.tcl +critcl struct_queuec struct/queue_c.tcl +critcl base32c base32/base32_c.tcl +critcl base32hexc base32/base32hex_c.tcl +critcl ipMorec dns/ipMoreC.tcl +critcl ptc {pt/pt_rdengine_c.tcl pt/pt_parse_peg_c.tcl} +critcl_notes {Note: you can ignore warnings for tcllibc.tcl, base64c.tcl and crcc.tcl.} |