/usr/share/doc/fcm/user_guide/annex_ext_cfg.html is in fcm 2017.10.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 | <!DOCTYPE html>
<html>
<head>
<title>FCM: User Guide: Annex: Declarations in FCM 1 extract configuration
file</title>
<meta name="author" content="FCM team" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="../etc/fcm-icon.png" type="image/png" />
<link rel="shortcut icon" href="../etc/fcm-icon.png" type="image/png" />
<link href="../etc/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" />
<link href="../etc/fcm.css" rel="stylesheet" media="screen" />
</head>
<body>
<div class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href=".."><span class="fcm-version">FCM</span></a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="../installation/">Installation</a></li>
<li><a class="active" href="#">User Guide</a></li>
</ul>
</div>
</div>
</div>
<div class="page-header">
<div class="fcm-page-content pull-right well well-sm"></div>
<h1>FCM: User Guide: Annex: Declarations in FCM 1 extract configuration
file</h1>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
<p><em>The FCM 1 extract system is deprecated. The documentation for the
current extract system can be found at <a href="make.html">FCM
Make</a>.</em></p>
<p>The following is a list of supported declarations for the configuration
file used by the FCM extract system. Unless otherwise stated, the fields in
all declaration labels are not case sensitive.</p>
<dl>
<dt>CFG::TYPE</dt>
<dd>
<p>The configuration file type, the value should always be
<samp>ext</samp> for an extract configuration file. This declaration is
compulsory for all extract configuration files.</p>
<p>Example:</p>
<pre>
cfg::type ext
</pre>
</dd>
<dt>CFG::VERSION</dt>
<dd>
<p>The file format version, currently <samp>1.0</samp> - a version is
included so that we shall be able to read the configuration file
correctly should we decide to change its format in the future.</p>
<p>Example:</p>
<pre>
cfg::version 1.0
</pre>
</dd>
<dt>%<name></dt>
<dd>
<p><code>%<name></code> declares an internal variable
<var><name></var> that can later be re-used.</p>
<p>Example:</p>
<pre>
%my_variable foo
src::bar::base %my_variable
src::egg::base %my_variable
src::ham::base %my_variable
</pre>
</dd>
<dt>INC</dt>
<dd>
<p>This declares the name of a file containing extract configuration. The
lines in the declared file will be included inline to the current
configuration file.</p>
<p>Example:</p>
<pre>
inc ~frva/var_stable_22.0/cfg/ext.cfg
# ... and then your changes ...
</pre>
</dd>
<dt>DEST[::ROOTDIR]</dt>
<dd>
<p>The <em>root</em> path of the destination of this extract. This
declaration is compulsory for all extract configuration files.</p>
<p>Example:</p>
<pre>
dest $HOME/project/my_project
</pre>
</dd>
<dt>USE</dt>
<dd>
<p>This declares the location of a previous successful extract, which the
current extract will inherit from. If the previous extract is also a
build, the subsequent invocation of the build system on the current
extract will automatically trigger an inherited incremental build based
on that build.</p>
<p>Example:</p>
<pre>
use ~frva/var_stable_22.0
# ... and then the settings for your current extract ...
</pre>
</dd>
<dt>RDEST[::ROOTDIR]</dt>
<dd>
<p>The alternate destination of this extract. This declaration is
compulsory if this extract requires mirroring to an alternate
destination.</p>
<p>Example:</p>
<pre>
rdest /home/nwp/da/frva/project/my_project
</pre>
</dd>
<dt>RDEST::LOGNAME</dt>
<dd>
<p>The login name of the user on the alternate destination machine. If
not specified, the current login name of the user on the local platform
is assumed.</p>
<p>Example:</p>
<pre>
rdest::logname frva
</pre>
</dd>
<dt>RDEST::MACHINE</dt>
<dd>
<p>The destination machine for this extract. If not specified, the current
host name is assumed.</p>
<p>Example:</p>
<pre>
rdest::machine tx01
</pre>
</dd>
<dt>
RDEST::MIRROR_CMD<br />
<del>MIRROR</del>
</dt>
<dd>
<p>The extract system can mirror the extracted source to an alternate
machine. Currently, it does this using either the <code>rdist</code> or
the <code>rsync</code> command. The default is <samp>rsync</samp>. This
declaration can be used to switch to using <samp>rdist</samp>.</p>
<p>Example:</p>
<pre>
rdest::mirror_cmd rdist
</pre>
</dd>
<dt>
RDEST::RSH_MKDIR_RSH (<del>RDEST::REMOTE_SHELL</del>)<br />
RDEST::RSH_MKDIR_RSHFLAGS<br />
RDEST::RSH_MKDIR_MKDIR<br />
RDEST::RSH_MKDIR_MKDIRFLAGS
</dt>
<dd>
<p>If <code>rsync</code> is used to mirror an extract, the system needs to
issue a separate remote shell command to create the container directory of
the mirror destination. The default is to issue a shell command in the
form <samp>ssh -n -oBatchMode=yes LOGNAME@MACHINE mkdir -p DEST</samp>.
These declarations can be used to modify the command.</p>
<p>Example:</p>
<pre>
# Examples using the default settings:
rdest::rsh_mkdir_rsh ssh
rdest::rsh_mkdir_rshflags -n -oBatchMode=yes
rdest::rsh_mkdir_mkdir mkdir
rdest::rsh_mkdir_mkdirflags -p
</pre>
</dd>
<dt>
RDEST::RSYNC<br />
RDEST::RSYNCFLAGS
</dt>
<dd>
<p>These declarations are only useful if <code>rsync</code> is used to
mirror an extract. By default, the system issues the shell command
<samp>rsync -a --exclude='.*' --delete-excluded --timeout=900 --rsh='ssh
-oBatchMode=yes' SOURCE DEST</samp>. These declarations can be used to
modify the command.</p>
<p>Example:</p>
<pre>
# Examples using the default settings:
rdest::rsync rsync
rdest::rsyncflags -a --exclude='.*' --delete-excluded --timeout=900 \
--rsh='ssh -oBatchMode=yes'
</pre>
</dd>
<dt>REPOS::<pck>::<branch></dt>
<dd>
<p>This declares a URL or a local file system path for the container
<em>repository</em> of a branch named <branch> in a package named
<pck>. The package name <pck> must be the name of a top-level
package (i.e. it must not contain the double colon <code>::</code>
delimiter). The name <branch> is used internally within the extract
system, and so is independent of the branch name of the code management
system. However, it is usually desirable to use the same name of the
actual branch in the code management system. For declaration of a local
file system path, the convention is to name the branch <samp>user</samp>.
Please note that both <pck> and <branch> fields are case
sensitive. The declared URL must be a valid Subversion URL or a valid FCM
URL keyword.</p>
<p>Example:</p>
<pre>
repos::var::base fcm:var_tr
repos::var::branch1 fcm:var_br/frsn/r4790_foobar
repos::var::user $HOME/var
</pre>
</dd>
<dt>
REVISION::<pck>::<branch><br />
<del>VERSION::<pck>::<branch></del>
</dt>
<dd>
<p>The revision to be used for the URL of <branch> in the package
<pck>. If specified, the revision must be a revision where the
branch exists. If not specified, the revision defaults to last changed
revision at the HEAD of the branch. Please note that if the declared
<em>branch</em> is in the local file system, this declaration must not be
used. The value of the declaration can be a FCM revision keyword or any
revision argument acceptable by Subversion. You can use a valid revision
number, a date between a pair of curly brackets (e.g. <samp>{"2005-05-01
12:00"}</samp>) or the keyword HEAD. However, please do not use the
keywords BASE, COMMITTED or PREV as these are reserved for working copies
only. Again, please note that both <pck> and <branch> fields
are case sensitive.</p>
<p>Example:</p>
<pre>
# Declare the revision with the FCM revision keyword "vn22.0"
revision::var::base vn22.0
# Declare the revision with a {date}
revision::var::branch1 {2006-01-01}
</pre>
</dd>
<dt>REVMATCH</dt>
<dd>
<p>If set to true, the declared revision of a branch must be a changed
revision of that branch, (unless the keyword HEAD is used).</p>
<p>Example:</p>
<pre>
revmatch true
</pre>
</dd>
<dt>SRC::<pcks>::<branch></dt>
<dd>
<p>This declares a source directory for the sub-package <pcks> of
<branch>. If the repository is declared as a URL, the source
directory must be quoted as a relative path to the URL. If the repository
is declared as a path in the local file system, the source directory can
be declared as either a relative path to the <em>repository</em> or a
full path. If the source directory is a relative path and <pcks> is
a top-level package, the full name of the sub-package will be determined
automatically using the directory names of the relative path as the names
of the sub-packages. If the source directory is a full path, the full
sub-package name must be specified. The name of the sub-package
determines the destination path of the source directory in the
extract.</p>
<p>Example:</p>
<pre>
src::var::base code/VarMod_PF
src::var/code/VarMod_PF::user $HOME/var/code/VarMod_PF
</pre>
</dd>
<dt>EXPSRC::<pcks>::<branch></dt>
<dd>
<p>This declares an expandable source directory for the sub-package
<pcks> of <branch>. This declaration is essentially the same
as the SRC declaration, except that the system will attempt to search
recursively for sub-directories within the declared source directory.</p>
<p>Example:</p>
<pre>
expsrc::var::base code
expsrc::var::user code
</pre>
</dd>
<dt>
CONFLICT<br />
<del>OVERRIDE</del>
</dt>
<dd>
<p>This declaration can be used to specify the conflict mode, which is
relevant when a file is modified by two different branches (or more)
relative to the base branch. The conflict mode can be <samp>fail</samp>,
<samp>merge</samp> (default) or <samp>override</samp> (or 0, 1 and 2
respectively). If <samp>fail</samp> is specified, the extract fails when
a file is modified by two branches (or more) relative to the base branch.
If <samp>merge</samp> is specified, the system will attempt to merge the
changes. It will fail only on unresolved conflicts. If
<samp>override</samp> is specified, the changes in the last branch takes
precedence and the changes in the earlier branches will be ignored. Note:
the old <code>override true|false</code> declaration is deprecated. If
declared, <code>override true</code> will be equivalent to <code>conflict
override</code>, and <code>override false</code> will be equivalent to
<code>conflict fail</code>.</p>
<p>Example:</p>
<pre>
conflict override
</pre>
</dd>
<dt>BLD::<fields></dt>
<dd>
<p>Declare a build configuration file declaration. The label
<fields> is the label of the declaration. On a successful extract,
<fields> will be added to the build configuration file. Please note
that some of the <fields> may be case sensitive.</p>
<p>Example:</p>
<pre>
bld::target VarScr_AnalysePF
bld::tool::fc sxmpif90
bld::tool::cc sxmpic++
# ... and so on ...
</pre>
</dd>
</dl>
</div>
</div>
</div>
<hr/>
<div class="container-fluid text-center">
<div class="row"><div class="col-md-12">
<address><small>
© British Crown Copyright 2006-16
<a href="http://www.metoffice.gov.uk">Met Office</a>.
See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
This document is released under the British <a href=
"http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
"license">Open Government Licence</a>.<br />
</small></address>
</div></div>
</div>
<script type="text/javascript" src="../etc/jquery.min.js"></script>
<script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../etc/fcm.js"></script>
<script type="text/javascript" src="../etc/fcm-version.js"></script>
</body>
</html>
|