software_smithy 1.1 → 1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/smithy +140 -33
- data/etc/completion/smithy-completion.bash +106 -7
- data/etc/completion/zsh/_smithy +121 -27
- data/etc/templates/formula.rb.erb +11 -0
- data/etc/templates/web/machine_version_table.html.erb +0 -7
- data/etc/templates/web/version_table.html.erb +2 -2
- data/lib/smithy/config.rb +70 -13
- data/lib/smithy/description.rb +4 -4
- data/lib/smithy/download_cache.rb +120 -0
- data/lib/smithy/file_operations.rb +13 -6
- data/lib/smithy/formula.rb +203 -0
- data/lib/smithy/formula_command.rb +198 -0
- data/lib/smithy/helpers.rb +83 -37
- data/lib/smithy/module_file.rb +21 -10
- data/lib/smithy/package.rb +111 -86
- data/lib/smithy.rb +3 -0
- data/lib/smithy_version.rb +1 -1
- data/man/man1/smithy.1 +240 -53
- data/smithy.rdoc +107 -7
- metadata +84 -39
- data/README.rdoc +0 -114
- data/etc/smithyrc +0 -36
data/lib/smithy.rb
CHANGED
data/lib/smithy_version.rb
CHANGED
data/man/man1/smithy.1
CHANGED
@@ -1,60 +1,254 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "SMITHY" "1" "
|
4
|
+
.TH "SMITHY" "1" "August 2013" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
|
-
\fBsmithy\fR \- build, test, and install software with ease
|
7
|
+
\fBsmithy\fR \- build, test, and install software with ease
|
8
8
|
.
|
9
9
|
.SH "SYNOPSIS"
|
10
10
|
\fBsmithy\fR \fBnew\fR APPLICATION/VERSION/BUILD
|
11
11
|
.
|
12
12
|
.br
|
13
|
-
\fBsmithy\fR \fBedit\fR
|
13
|
+
\fBsmithy\fR \fBedit\fR APPLICATION/VERSION/BUILD
|
14
14
|
.
|
15
15
|
.br
|
16
|
-
\fBsmithy\fR \fBbuild\fR
|
16
|
+
\fBsmithy\fR \fBbuild\fR APPLICATION/VERSION/BUILD
|
17
|
+
.
|
18
|
+
.br
|
19
|
+
\fBsmithy\fR \fBformula install\fR APPLICATION/VERSION/BUILD
|
17
20
|
.
|
18
21
|
.br
|
19
22
|
.
|
20
23
|
.SH "DESCRIPTION"
|
21
|
-
\fBsmithy\fR
|
24
|
+
\fBsmithy\fR is a command line software installation tool that borrows ideas heavily from the excellent homebrew \fIhttp://brew\.sh/\fR package management system for Mac OS X and SWTools \fIhttp://www\.olcf\.ornl\.gov/center\-projects/swtools/\fR\.
|
22
25
|
.
|
23
26
|
.P
|
24
|
-
This is still a work in progress\. If you have any questions, suggestions, or encounter any errors please
|
27
|
+
This is still a work in progress\. If you have any questions, suggestions, or encounter any errors please open an issue on github at \fIhttps://github\.com/AnthonyDiGirolamo/smithy/issues\fR\.
|
25
28
|
.
|
26
|
-
.SH "
|
29
|
+
.SH "COMMAND LINE HELP"
|
27
30
|
For help on all options and commands run \fBsmithy help\fR
|
28
31
|
.
|
29
|
-
.
|
30
|
-
|
32
|
+
.br
|
33
|
+
For help on a specific command run \fBsmithy help COMMAND\fR or \fBsmithy help COMMAND SUBCOMMAND\fR
|
34
|
+
.
|
35
|
+
.SH "SOFTWARE INSTALLATION METHODS"
|
36
|
+
There are two ways of installing software using smithy:
|
37
|
+
.
|
38
|
+
.IP "\(bu" 4
|
39
|
+
\fBbuild scripts\fR (similar to swtools)
|
40
|
+
.
|
41
|
+
.IP "\(bu" 4
|
42
|
+
\fBformulas\fR (similar to homebrew)
|
43
|
+
.
|
44
|
+
.IP "" 0
|
45
|
+
.
|
46
|
+
.SH "BUILD SCRIPTS"
|
47
|
+
Build scripts are shell scripts that live inside of a package\'s PREFIX and execute the steps required to perform the compilation\. A hierarchy might look something like this:
|
48
|
+
.
|
49
|
+
.IP "" 4
|
50
|
+
.
|
51
|
+
.nf
|
52
|
+
|
53
|
+
/sw/xk6/subversion/1\.6\.17
|
54
|
+
`\-\-\- sles11\.1_gnu4\.3\.4
|
55
|
+
`\-\-\- bin
|
56
|
+
`\-\-\- build\-notes
|
57
|
+
`\-\-\- dependencies
|
58
|
+
`\-\-\- include
|
59
|
+
`\-\-\- lib
|
60
|
+
`\-\-\- rebuild
|
61
|
+
`\-\-\- relink
|
62
|
+
`\-\-\- remodule
|
63
|
+
`\-\-\- retest
|
64
|
+
`\-\-\- share
|
65
|
+
`\-\-\- subversion\-1\.6\.17
|
66
|
+
.
|
67
|
+
.fi
|
68
|
+
.
|
69
|
+
.IP "" 0
|
31
70
|
.
|
32
71
|
.P
|
33
|
-
|
72
|
+
The prefix for the above package is \fB/sw/xk6/subversion/1\.6\.17/sles11\.1_gnu4\.3\.4\fR within this directory you can see the usual \fBbin/include/lib/share\fR folders\. Additionally there is the source directory \fBsubversion\-1\.6\.17\fR and three build scripts \fBrebuild\fR, \fBrelink\fR, and \fBremodule\fR\. The \fBrebuild\fR script will compile the software and set the prefix while the remodule script sets up the environment including loading modulefiles\.
|
34
73
|
.
|
35
|
-
.
|
74
|
+
.SH "FORMULAS"
|
75
|
+
The Problem with build scripts is that they are duplicated for every software installation\. This makes installing new software difficult because you will have to go back and look at old ones and copy relevant steps to a new rebuild script\. So much for don\'t repeat yourself!
|
76
|
+
.
|
77
|
+
.P
|
78
|
+
An alternative is to use formulas\. This idea is heavily borrowed from the wonderful homebrew \fIhttp://brew\.sh/\fR package management system for Mac OS X\. With a formula you can specify the modules to load, extra package dependencies, installation steps, and the modulefile in a single file\. The formulas are written in ruby and can be as flexible and dynamic as you like\.
|
79
|
+
.
|
80
|
+
.P
|
81
|
+
A package installed with a formula has a simpler prefix directory structure\. The only addition is the source files under the source directory\.
|
82
|
+
.
|
83
|
+
.IP "" 4
|
84
|
+
.
|
85
|
+
.nf
|
86
|
+
|
87
|
+
/sw/xk6/subversion/1\.7\.8
|
88
|
+
`\-\-\- sles11\.1_gnu4\.3\.4
|
89
|
+
`\-\-\- bin
|
90
|
+
`\-\-\- include
|
91
|
+
`\-\-\- lib
|
92
|
+
`\-\-\- source
|
93
|
+
`\-\-\- share
|
94
|
+
.
|
95
|
+
.fi
|
96
|
+
.
|
97
|
+
.IP "" 0
|
98
|
+
.
|
99
|
+
.SH "NAMING SOFTWARE BUILDS"
|
36
100
|
All software builds have the following name format: \fBAPPLICATION/VERSION/BUILD\fR That is three different parts separated by forward slashes \fB/\fR Each part consists of:
|
37
101
|
.
|
38
|
-
.
|
39
|
-
\fBAPPLICATION\fR
|
102
|
+
.SS "APPLICATION"
|
40
103
|
The name using lowercase characters
|
41
104
|
.
|
42
|
-
.
|
43
|
-
|
44
|
-
Numbers with periods\. I recommend that whatever you choose as a version allows it to be lexigraphically sorted from oldest to newest\.
|
105
|
+
.SS "VERSION"
|
106
|
+
Numbers with periods\. I recommend that whatever you choose as a version allows it to be lexigraphically sorted from oldest to newest\. For example use 2013\-02\-14 instead of Feb14\-2013\.
|
45
107
|
.
|
46
|
-
.
|
47
|
-
\
|
48
|
-
Build is somewhat different, it consists of the intended operating system and compiler separated by underscores (\fB_\fR)\. It is important to use compiler version numbers that correspond to module versions\. This will allow smithy to auto\-generate modulefiles for software with multiple builds\. As an example:
|
108
|
+
.SS "BUILD"
|
109
|
+
Build is somewhat different, it consists of the intended operating system and compiler separated by underscores \fB_\fR\. It is important to use compiler version numbers that correspond to module versions\. This will allow smithy to auto\-generate modulefiles for software with multiple builds\.
|
49
110
|
.
|
50
|
-
.
|
111
|
+
.P
|
51
112
|
\fBsles11\.1_gnu4\.6\.2\fR corresponds to SuSE Linux Enterprise Server 11\.1 and the GNU gcc compiler 4\.6\.2
|
52
113
|
.
|
53
|
-
.
|
114
|
+
.P
|
54
115
|
\fBcle4\.0_pgi12\.1\.0\fR corresponds to Cray Linux Environment 4\.0 and the PGI 12\.1\.0 compile
|
55
116
|
.
|
56
117
|
.P
|
57
|
-
|
118
|
+
You may also add any other details relevant to the build\. For instance, add python2\.7 to the build name of a python module compiled for python2\.7 and python3\.3 for python3\.3\.
|
119
|
+
.
|
120
|
+
.SH "INSTALLATIONS WITH FORMULAS"
|
121
|
+
For details on writing formulas please see the smithyformula(5) man page\. This section covers only how to install software using existing formulas\.
|
122
|
+
.
|
123
|
+
.P
|
124
|
+
Smithy formula sub\-commands include:
|
125
|
+
.
|
126
|
+
.TP
|
127
|
+
\fBnew\fR
|
128
|
+
Create a new formula
|
129
|
+
.
|
130
|
+
.TP
|
131
|
+
\fBlist\fR
|
132
|
+
List known formulas
|
133
|
+
.
|
134
|
+
.TP
|
135
|
+
\fBwhich\fR
|
136
|
+
Display a formula location
|
137
|
+
.
|
138
|
+
.TP
|
139
|
+
\fBdisplay\fR
|
140
|
+
Display a formula
|
141
|
+
.
|
142
|
+
.TP
|
143
|
+
\fBinstall\fR
|
144
|
+
Install a package using a formula
|
145
|
+
.
|
146
|
+
.TP
|
147
|
+
\fBcreate_modulefile\fR
|
148
|
+
Create a modulefile for a given package
|
149
|
+
.
|
150
|
+
.P
|
151
|
+
Once a formula has been written installing is straightforward using the install command\. For example to install subversion to your software root under the \fBsubversion/1\.7\.8/sles11\.1_gnu4\.3\.4\fR directory you might run:
|
152
|
+
.
|
153
|
+
.IP "" 4
|
154
|
+
.
|
155
|
+
.nf
|
156
|
+
|
157
|
+
smithy formula install subversion/1\.7\.8/sles11\.1_gnu4\.3\.4
|
158
|
+
.
|
159
|
+
.fi
|
160
|
+
.
|
161
|
+
.IP "" 0
|
162
|
+
.
|
163
|
+
.P
|
164
|
+
See \fINAMING SOFTWARE BUILDS\fR for details on naming a software build\. The format of the install sub\-command is: \fBsmithy formula install [command options] APPLICATION | APPLICATION/VERSION | APPLICATION/VERSION/BUILD\fR\. The options and arguments include:
|
165
|
+
.
|
166
|
+
.TP
|
167
|
+
\fB\-\-[no\-]clean\fR
|
168
|
+
This will delete all existing files in the target directory before performing the installation\.
|
169
|
+
.
|
170
|
+
.TP
|
171
|
+
\fB\-\-formula\-name\fR
|
172
|
+
By default smithy will guess the formula name based on the target directory APPLICATION/VERSION/BUILD argument\. You may wish you install to a location named differently than a formula\. In this case, use \fB\-\-formula\-name\fR to define which formula to use\.
|
173
|
+
.
|
174
|
+
.TP
|
175
|
+
\fBAPPLICATION | APPLICATION/VERSION | APPLICATION/VERSION/BUILD\fR
|
176
|
+
This is the destination directory that the software will be installed in\. If you omit the BUILD or VERSION/BUILD directories smithy will try to guess the version based on the formula, and the build based on the operating system and version of gcc available\. If in doubt, specify the full destination\.
|
177
|
+
.
|
178
|
+
.P
|
179
|
+
Assuming we install subversion with the previous command and our software\-root is \fB/sw/xk6/\fR the finished directory structure would look like:
|
180
|
+
.
|
181
|
+
.IP "" 4
|
182
|
+
.
|
183
|
+
.nf
|
184
|
+
|
185
|
+
/sw/xk6/subversion/1\.7\.8
|
186
|
+
`\-\-\- modulefile
|
187
|
+
| `\-\-\- subversion
|
188
|
+
| `\-\-\- 1\.7\.8
|
189
|
+
`\-\-\- sles11\.1_gnu4\.3\.4
|
190
|
+
`\-\-\- bin
|
191
|
+
`\-\-\- include
|
192
|
+
`\-\-\- lib
|
193
|
+
`\-\-\- source
|
194
|
+
`\-\-\- share
|
195
|
+
.
|
196
|
+
.fi
|
197
|
+
.
|
198
|
+
.IP "" 0
|
199
|
+
.
|
200
|
+
.P
|
201
|
+
A \fBmodulefile\fR folder will be created alongside the \fBsles11\.1_gnu4\.3\.4\fR build directory so that the modulefile can be tested\. To test the modulefile you need to add the modulefile folder to the \fB$MODULEPATH\fR environment variable\. Running any of the following will do this:
|
202
|
+
.
|
203
|
+
.IP "" 4
|
204
|
+
.
|
205
|
+
.nf
|
206
|
+
|
207
|
+
smithy module use last
|
208
|
+
smithy module use subversion/1\.7\.8/sles11\.1_gnu4\.3\.4
|
209
|
+
module use /sw/xk6/subversion/1\.7\.8/modulefile/subversion
|
210
|
+
.
|
211
|
+
.fi
|
212
|
+
.
|
213
|
+
.IP "" 0
|
214
|
+
.
|
215
|
+
.P
|
216
|
+
\fBlast\fR is an alias to the last software build smithy worked on\. \fBsmithy show last\fR will display the last build you worked on\.
|
217
|
+
.
|
218
|
+
.P
|
219
|
+
Once loaded, you should be able to interact with the new module file as normal using:
|
220
|
+
.
|
221
|
+
.IP "" 4
|
222
|
+
.
|
223
|
+
.nf
|
224
|
+
|
225
|
+
module avail subversion/1\.7\.8
|
226
|
+
module display subversion/1\.7\.8
|
227
|
+
module load subversion/1\.7\.8
|
228
|
+
.
|
229
|
+
.fi
|
230
|
+
.
|
231
|
+
.IP "" 0
|
232
|
+
.
|
233
|
+
.P
|
234
|
+
You can now deploy the module to make it available to other users\. This should be done once you\'re confident the modulefile is working properly\. To do so run either:
|
235
|
+
.
|
236
|
+
.IP "" 4
|
237
|
+
.
|
238
|
+
.nf
|
239
|
+
|
240
|
+
smithy module deploy last
|
241
|
+
smithy module deploy subversion/1\.7\.8/sles11\.1_gnu4\.3\.4
|
242
|
+
.
|
243
|
+
.fi
|
244
|
+
.
|
245
|
+
.IP "" 0
|
246
|
+
.
|
247
|
+
.SH "INSTALLATIONS WITH BUILD SCRIPTS"
|
248
|
+
This section shows the typical work\-flow for adding a new software build using build scripts\. Let\'s imagine we want to install petsc 3\.2 using the cray compiler\. We must create a place for the software build, build it, and create a module\.
|
249
|
+
.
|
250
|
+
.SS "1\. Creating The Build"
|
251
|
+
Let\'s use \fBpetsc/3\.2/cle4\.0_cray8\.0\.1\fR as the name for our new package\. See \fINAMING SOFTWARE BUILDS\fR for details on naming a software build\. This would be petsc designed to run on a cle4\.0 compute node and compiled with the cray cce 8\.0\.1 compiler\. This can be accomplished by running:
|
58
252
|
.
|
59
253
|
.IP "" 4
|
60
254
|
.
|
@@ -67,13 +261,13 @@ smithy new petsc/3\.2/cle4\.0_cray8\.0\.1
|
|
67
261
|
.IP "" 0
|
68
262
|
.
|
69
263
|
.P
|
70
|
-
You can save yourself some extra time by telling smithy where the tar file for petsc is:
|
264
|
+
You can save yourself some extra time by telling smithy where the source tar file for petsc is:
|
71
265
|
.
|
72
266
|
.IP "" 4
|
73
267
|
.
|
74
268
|
.nf
|
75
269
|
|
76
|
-
smithy new \-t
|
270
|
+
smithy new \-t petsc\-3\.2\-p7\.tar\.gz petsc/3\.2/cle4\.0_cray8\.0\.1
|
77
271
|
.
|
78
272
|
.fi
|
79
273
|
.
|
@@ -83,9 +277,25 @@ smithy new \-t /sw/sources/petsc/3\.2/petsc\-lite\-3\.2\-p7\.tar\.gz petsc/3\.2/
|
|
83
277
|
When using the \fB\-t\fR, \fB\-\-tarfile=\fR option smithy will extract the given archive to the \fBsource\fR directory\. For the petsc example above this would be \fB/sw/xk6/petsc/3\.2/cle4\.0_cray8\.0\.1/source\fR
|
84
278
|
.
|
85
279
|
.P
|
86
|
-
|
280
|
+
The \fB\-t\fR option can also download an archive from a given URL\. The archive is saved along side the source directory\. As an example:
|
281
|
+
.
|
282
|
+
.IP "" 4
|
283
|
+
.
|
284
|
+
.nf
|
285
|
+
|
286
|
+
smithy new \-t http://ftp\.mcs\.anl\.gov/pub/petsc/release\-snapshots/petsc\-3\.2\-p7\.tar\.gz petsc/3\.2/cle4\.0_cray8\.0\.1
|
287
|
+
.
|
288
|
+
.fi
|
289
|
+
.
|
290
|
+
.IP "" 0
|
291
|
+
.
|
292
|
+
.P
|
293
|
+
This command will download petsc\-3\.2\-p7\.tar\.gz, save it to \fB/sw/xk6/petsc/3\.2/cle4\.0_cray8\.0\.1/petsc\-3\.2\-p7\.tar\.gz\fR and extract it to \fB/sw/xk6/petsc/3\.2/cle4\.0_cray8\.0\.1/source\fR\. This feature requires the \fBcurl\fR command to work properly\.
|
294
|
+
.
|
295
|
+
.P
|
296
|
+
Additionally, if this is a brand new piece of software add the \fB\-\-web\-description\fR switch\. This will create the application description files too\.
|
87
297
|
.
|
88
|
-
.SS "2\. Editing and Building the Software
|
298
|
+
.SS "2\. Editing and Building the Software"
|
89
299
|
Once you have created the build you may need to update the build (\fBrebuild\fR) and environment (\fBremodule\fR) scripts before building the software\. Both files live within the software prefix\. For our example it is located in \fB/sw/xk6/petsc/3\.2/cle4\.0_cray8\.0\.1\fR\. You can edit this and other related files using the \fBedit\fR command:
|
90
300
|
.
|
91
301
|
.IP "" 4
|
@@ -130,7 +340,7 @@ smithy build last
|
|
130
340
|
.P
|
131
341
|
The results of the run will be shown on the screen and simultaneously logged to \fBbuild\.log\fR withing the software prefix folder\.
|
132
342
|
.
|
133
|
-
.SS "3\. Create and edit a modulefile
|
343
|
+
.SS "3\. Create and edit a modulefile"
|
134
344
|
This step is best done after all builds for a particular application have been created\. When you create a new software build a modulefile is created too\. For our petsc install it lives in: \fB/sw/xk6/petsc/3\.2/modulefile\fR All builds of a particular application share a single modulefile\.
|
135
345
|
.
|
136
346
|
.P
|
@@ -207,7 +417,7 @@ smithy module deploy last
|
|
207
417
|
For out petsc example, this command will copy \fB/sw/xk6/petsc/3\.2/modulefile/petsc/3\.2\fR to \fB/sw/xk6/modulefiles/petsc/3\.2\fR
|
208
418
|
.
|
209
419
|
.SS "4\. Website Description"
|
210
|
-
If this is a new application you will need to add some information to the description file\. For petsc this lives in: \fB/sw/xk6/petsc/description\fR This is an html formatted file\. Alternatively, it can live in \fB/sw/xk6/petsc/description\.markdown\fR this file is in markdown format and is a bit simpler to write than html\. See
|
420
|
+
If this is a new application you will need to add some information to the description file\. For petsc this lives in: \fB/sw/xk6/petsc/description\fR This is an html formatted file\. Alternatively, it can live in \fB/sw/xk6/petsc/description\.markdown\fR this file is in markdown format and is a bit simpler to write than html\. See \fIhttp://kramdown\.rubyforge\.org/quickref\.html\fR for more information on markdown syntax\. If both files exist, the markdown file takes precedence\.
|
211
421
|
.
|
212
422
|
.P
|
213
423
|
If the description file is missing you can generate one by running:
|
@@ -235,28 +445,5 @@ smithy publish petsc
|
|
235
445
|
.
|
236
446
|
.IP "" 0
|
237
447
|
.
|
238
|
-
.SH "
|
239
|
-
|
240
|
-
.
|
241
|
-
.P
|
242
|
-
Copyright (c) 2012\. UT\-BATTELLE, LLC\. All rights reserved\.
|
243
|
-
.
|
244
|
-
.P
|
245
|
-
Produced at the National Center for Computational Sciences in Oak Ridge National Laboratory\.
|
246
|
-
.
|
247
|
-
.P
|
248
|
-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
249
|
-
.
|
250
|
-
.IP "\(bu" 4
|
251
|
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer\.
|
252
|
-
.
|
253
|
-
.IP "\(bu" 4
|
254
|
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution\.
|
255
|
-
.
|
256
|
-
.IP "\(bu" 4
|
257
|
-
Neither the name of the UT\-BATTELLE nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission\.
|
258
|
-
.
|
259
|
-
.IP "" 0
|
260
|
-
.
|
261
|
-
.P
|
262
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED\. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE\.
|
448
|
+
.SH "SEE ALSO"
|
449
|
+
smithyformula(5)
|
data/smithy.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
== smithy - Smithy will help you build, test, and install software with ease.
|
2
2
|
|
3
|
-
v1.
|
3
|
+
v1.6
|
4
4
|
|
5
5
|
=== Global Options
|
6
6
|
=== --arch NAME
|
@@ -53,7 +53,7 @@ The root level directory for published web files
|
|
53
53
|
|
54
54
|
|
55
55
|
=== --[no-]colors
|
56
|
-
Disable or enable color output
|
56
|
+
Disable or enable color output
|
57
57
|
|
58
58
|
|
59
59
|
|
@@ -72,16 +72,21 @@ Show this message
|
|
72
72
|
|
73
73
|
|
74
74
|
|
75
|
-
===
|
75
|
+
=== -v|--verbose
|
76
|
+
Be more verbose
|
77
|
+
|
76
78
|
|
77
79
|
|
80
|
+
=== --version
|
81
|
+
Display the program version
|
82
|
+
|
78
83
|
|
79
84
|
|
80
85
|
=== Commands
|
81
86
|
==== Command: <tt>build PATH</tt>
|
82
87
|
Build software
|
83
88
|
|
84
|
-
The software to build may be either the absolute path or the full name of the software. The full name includes version numbers and build names using the format:
|
89
|
+
The software to build may be either the absolute path or the full name of the software. The full name includes version numbers and build names using the format: APPLICATION/VERSION/BUILD.
|
85
90
|
===== Options
|
86
91
|
===== --log-name FILE
|
87
92
|
|
@@ -127,6 +132,84 @@ Split editing window with requested file and the environment (remodule) file
|
|
127
132
|
|
128
133
|
|
129
134
|
|
135
|
+
==== Command: <tt>formula </tt>
|
136
|
+
Install software from predefined formulas
|
137
|
+
|
138
|
+
|
139
|
+
===== Options
|
140
|
+
===== -d|--directories PATH
|
141
|
+
|
142
|
+
Specify one or more additional formula directories separated with commas
|
143
|
+
|
144
|
+
[Default Value] None
|
145
|
+
|
146
|
+
|
147
|
+
===== Commands
|
148
|
+
====== Command: <tt>create_modulefile APPLICATION | APPLICATION/VERSION | APPLICATION/VERSION/BUILD</tt>
|
149
|
+
Create a modulefile for a given package
|
150
|
+
|
151
|
+
|
152
|
+
======= Options
|
153
|
+
======= -f|--formula-name NAME
|
154
|
+
|
155
|
+
Formula name
|
156
|
+
|
157
|
+
[Default Value] None
|
158
|
+
|
159
|
+
|
160
|
+
====== Command: <tt>display FORMULA</tt>
|
161
|
+
Display a formula
|
162
|
+
|
163
|
+
|
164
|
+
====== Command: <tt>install APPLICATION | APPLICATION/VERSION | APPLICATION/VERSION/BUILD</tt>
|
165
|
+
Install a package using a formula
|
166
|
+
|
167
|
+
|
168
|
+
======= Options
|
169
|
+
======= -f|--formula-name NAME
|
170
|
+
|
171
|
+
Formula name
|
172
|
+
|
173
|
+
[Default Value] None
|
174
|
+
|
175
|
+
|
176
|
+
======= -c|--[no-]clean
|
177
|
+
Clean exiting install prefix
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
======= -m|--modulefile
|
182
|
+
Create modulefiles as well
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
====== Command: <tt>list </tt>
|
187
|
+
List known formulas
|
188
|
+
|
189
|
+
|
190
|
+
====== Command: <tt>new URL</tt>
|
191
|
+
Create a new formula
|
192
|
+
|
193
|
+
|
194
|
+
======= Options
|
195
|
+
======= -h|--homepage URL
|
196
|
+
|
197
|
+
Formula homepage
|
198
|
+
|
199
|
+
[Default Value] None
|
200
|
+
|
201
|
+
|
202
|
+
======= -n|--name NAME
|
203
|
+
|
204
|
+
Formula name
|
205
|
+
|
206
|
+
[Default Value] None
|
207
|
+
|
208
|
+
|
209
|
+
====== Command: <tt>which FORMULA</tt>
|
210
|
+
Display a formula location
|
211
|
+
|
212
|
+
|
130
213
|
==== Command: <tt>help command</tt>
|
131
214
|
Shows a list of commands or help for one command
|
132
215
|
|
@@ -167,9 +250,9 @@ Run the proper module command to add a package's modulefile to the MODULEPATH. T
|
|
167
250
|
==== Command: <tt>new NAME</tt>
|
168
251
|
Generate a new build and all necessary files
|
169
252
|
|
170
|
-
The new command will create all necessary files needed to add a new software package. Some care should be given to naming new packages. Some considerations are package names, version numbers, and build names. New package names should be of the format
|
253
|
+
The new command will create all necessary files needed to add a new software package. Some care should be given to naming new packages. Some considerations are package names, version numbers, and build names. New package names should be of the format APPLICATION/VERSION/BUILD
|
171
254
|
|
172
|
-
-
|
255
|
+
- APPLICATION of the package should be all lower case and one word. If multiple words are necessary separate them with dashes '-'.
|
173
256
|
|
174
257
|
- VERSION numbers should be standard numbers separated by periods. If another format is necessary ensure that the numbers can be lexigraphically sorted in order of oldest release to newest.
|
175
258
|
|
@@ -180,7 +263,14 @@ EXAMPLES:
|
|
180
263
|
silo/4.8/sles11.1_gnu4.5.3
|
181
264
|
fftw/3.2.2/cle4.0_pgi11.10.0
|
182
265
|
===== Options
|
183
|
-
===== -
|
266
|
+
===== -e|--existing-scripts PATH
|
267
|
+
|
268
|
+
Use an existing software's build scripts
|
269
|
+
|
270
|
+
[Default Value] None
|
271
|
+
|
272
|
+
|
273
|
+
===== -t|--tarball|--tarfile FILE|URL
|
184
274
|
|
185
275
|
Provide a tarball to unpack, either a file or URL (optional)
|
186
276
|
|
@@ -243,6 +333,16 @@ Display internal smithy values
|
|
243
333
|
List all architectures know to smithy.
|
244
334
|
|
245
335
|
|
336
|
+
======= Options
|
337
|
+
======= -a|--all
|
338
|
+
list all architectures
|
339
|
+
|
340
|
+
|
341
|
+
|
342
|
+
====== Command: <tt>example_config </tt>
|
343
|
+
Display an example config file.
|
344
|
+
|
345
|
+
|
246
346
|
====== Command: <tt>last </tt>
|
247
347
|
Display the package name used in the last smithy command. This is stored in the '~/.smithyrc' file.
|
248
348
|
|