home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / cook-1.4 / part06 / config
Text File  |  1993-05-03  |  11KB  |  368 lines

  1. /*
  2.  *    cook - file construction tool
  3.  *    Copyright (C) 1991, 1992, 1993 Peter Miller.
  4.  *    All rights reserved.
  5.  *
  6.  *    This program is free software; you can redistribute it and/or modify
  7.  *    it under the terms of the GNU General Public License as published by
  8.  *    the Free Software Foundation; either version 2 of the License, or
  9.  *    (at your option) any later version.
  10.  *
  11.  *    This program is distributed in the hope that it will be useful,
  12.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  *    GNU General Public License for more details.
  15.  *
  16.  *    You should have received a copy of the GNU General Public License
  17.  *    along with this program; if not, write to the Free Software
  18.  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  *
  20.  * MANIFEST: instructions to aegis, per-project configuration
  21.  */
  22.  
  23. /*
  24.  * how to build the project
  25.  *    (actually, how to do an integration build)
  26.  * mandatory
  27.  */
  28. build_command =
  29.     "cook -b ${source aux/Howto.cook} project=$project \
  30. change=$change version=$version -nl";
  31.  
  32. /*
  33.  * When do -Integrate_Begin, link the baseline to the integration directory,
  34.  * rather than copying it.. This should be much faster.
  35.  *
  36.  * There is a gotcha: all the recipes in Howto.cook must unlink their targets
  37.  * before re-creating them, otherwise the baseline will be trashed.
  38.  */
  39. link_integration_directory = true;
  40.  
  41. /*
  42.  * create a new history
  43.  * always executed as the project owner
  44.  */
  45. history_create_command =
  46.     "fhist ${b $history} -create -i $input -p ${d $history} -r";
  47.  
  48. /*
  49.  * get a file from history
  50.  * may be executed by developers
  51.  */
  52. history_get_command =
  53.     "fhist ${b $history} -e '$edit' -o $output -p ${d $history}";
  54.  
  55. /*
  56.  * add a new change to the history
  57.  * always executed as the project owner
  58.  */
  59. history_put_command =
  60.     "fhist ${b $history} -u -i $input -p ${d $history} -r";
  61.  
  62. /*
  63.  * query the topmost edit of a history file
  64.  * Result to be printed on stdout.
  65.  * may be executed by developers
  66.  */
  67. history_query_command =
  68.     "fhist ${b $history} -l 0 -p ${d $history} -q";
  69.  
  70. /*
  71.  * difference of 2 files
  72.  */
  73. diff_command =
  74.     "fcomp -w -s $original $input -o $output";
  75.  
  76. /*
  77.  * difference of 3 files
  78.  */
  79. diff3_command =
  80.     "fmerge $original $mostRecent $input -o $output";
  81.  
  82. /*
  83.  * whenever files are added to or removed from the change,
  84.  * execute the following command.
  85.  */
  86. change_file_command = "rm -f .c_inclrc";
  87.  
  88. /*
  89.  * new file templates
  90.  */
  91. file_template =
  92. [
  93.     {
  94.         pattern = [ "*.[cyl]" ];
  95.         body ="\
  96. /*\n\
  97.  *    cook - file construction tool\n\
  98.  *    Copyright (C) ${date %Y} Peter Miller.\n\
  99.  *    All rights reserved.\n\
  100.  *\n\
  101.  *    This program is free software; you can redistribute it and/or modify\n\
  102.  *    it under the terms of the GNU General Public License as published by\n\
  103.  *    the Free Software Foundation; either version 2 of the License, or\n\
  104.  *    (at your option) any later version.\n\
  105.  *\n\
  106.  *    This program is distributed in the hope that it will be useful,\n\
  107.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  108.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  109.  *    GNU General Public License for more details.\n\
  110.  *\n\
  111.  *    You should have received a copy of the GNU General Public License\n\
  112.  *    along with this program; if not, write to the Free Software\n\
  113.  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  114.  *\n\
  115.  * MANIFEST: functions to manipulate ${basename $fn .c}s\n\
  116.  */\n";
  117.     },
  118.     {
  119.         pattern = [ "*.h" ];
  120.         body = "\
  121. /*\n\
  122.  *    cook - file construction tool\n\
  123.  *    Copyright (C) ${date %Y} Peter Miller.\n\
  124.  *    All rights reserved.\n\
  125.  *\n\
  126.  *    This program is free software; you can redistribute it and/or modify\n\
  127.  *    it under the terms of the GNU General Public License as published by\n\
  128.  *    the Free Software Foundation; either version 2 of the License, or\n\
  129.  *    (at your option) any later version.\n\
  130.  *\n\
  131.  *    This program is distributed in the hope that it will be useful,\n\
  132.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  133.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  134.  *    GNU General Public License for more details.\n\
  135.  *\n\
  136.  *    You should have received a copy of the GNU General Public License\n\
  137.  *    along with this program; if not, write to the Free Software\n\
  138.  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  139.  *\n\
  140.  * MANIFEST: interface definition for ${basename $fn .c}\n\
  141.  */\n\
  142. \n\
  143. #ifndef ${upcase ${id $fn}}\n\
  144. #define ${upcase ${id $fn}}\n\
  145. \n\
  146. #include <main.h>\n\
  147. \n\
  148. #endif /* ${upcase ${id $fn}} */\n";
  149.     },
  150.     {
  151.         pattern = [ "test/*/*.sh" ];
  152.         body = "\
  153. #! /bin/sh\n\
  154. #\n\
  155. #    cook - file construction tool\n\
  156. #    Copyright (C) ${date %Y} Peter Miller.\n\
  157. #    All rights reserved.\n\
  158. #\n\
  159. #    This program is free software; you can redistribute it and/or modify\n\
  160. #    it under the terms of the GNU General Public License as published by\n\
  161. #    the Free Software Foundation; either version 2 of the License, or\n\
  162. #    (at your option) any later version.\n\
  163. #\n\
  164. #    This program is distributed in the hope that it will be useful,\n\
  165. #    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  166. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  167. #    GNU General Public License for more details.\n\
  168. #\n\
  169. #    You should have received a copy of the GNU General Public License\n\
  170. #    along with this program; if not, write to the Free Software\n\
  171. #    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  172. #\n\
  173. # MANIFEST: Test the ??? functionality\n\
  174. #\n\
  175. \n\
  176. work=/tmp/$$$$\n\
  177. PAGER=cat\n\
  178. export PAGER\n\
  179. \n\
  180. here=`pwd`\n\
  181. if test $$? -ne 0 ; then exit 1; fi\n\
  182. \n\
  183. fail()\n\
  184. {\n\
  185.     set +x\n\
  186.     echo 'FAILED test of the ??? functionality' 1>&2\n\
  187.     cd $$here\n\
  188.     find $$work -type d -user $$USER -exec chmod u+w {} \\;\n\
  189.     rm -rf $$work\n\
  190.     exit 1\n\
  191. }\n\
  192. pass()\n\
  193. {\n\
  194.     set +x\n\
  195.     echo PASSED 1>&2\n\
  196.     cd $$here\n\
  197.     find $$work -type d -user $$USER -exec chmod u+w {} \\;\n\
  198.     rm -rf $$work\n\
  199.     exit 0\n\
  200. }\n\
  201. trap \"fail\" 1 2 3 15\n\
  202. \n\
  203. mkdir $$work\n\
  204. if test $$? -ne 0 ; then exit 1; fi\n\
  205. cd $$work\n\
  206. if test $$? -ne 0 ; then fail; fi\n\
  207. \n\
  208. #\n\
  209. # put your test here\n\
  210. #\n\
  211. $$here/myprog\n\
  212. if test $$? -ne 0 ; then fail; fi\n\
  213. \n\
  214. #\n\
  215. # Only definite negatives are possible.\n\
  216. # The functionality exercised by this test appears to work,\n\
  217. # no other guarantees are made.\n\
  218. #\n\
  219. pass\n";
  220.     },
  221.     {
  222.         pattern = [ "*.sh" ];
  223.         body = "\
  224. #! /bin/sh\n\
  225. #\n\
  226. #    cook - file construction tool\n\
  227. #    Copyright (C) ${date %Y} Peter Miller.\n\
  228. #    All rights reserved.\n\
  229. #\n\
  230. #    This program is free software; you can redistribute it and/or modify\n\
  231. #    it under the terms of the GNU General Public License as published by\n\
  232. #    the Free Software Foundation; either version 2 of the License, or\n\
  233. #    (at your option) any later version.\n\
  234. #\n\
  235. #    This program is distributed in the hope that it will be useful,\n\
  236. #    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  237. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  238. #    GNU General Public License for more details.\n\
  239. #\n\
  240. #    You should have received a copy of the GNU General Public License\n\
  241. #    along with this program; if not, write to the Free Software\n\
  242. #    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  243. #\n\
  244. # MANIFEST: shell script to ${basename $fn .sh}\n\
  245. #\n\
  246. \n\
  247. exit 0\n";
  248.     },
  249.     {
  250.         pattern = [ "*.man", "*.[12345678]" ];
  251.         body = "\
  252. '\\\" t\n\
  253. .\\\"    cook - file construction tool\n\
  254. .\\\"    Copyright (C) ${date %Y} Peter Miller.\n\
  255. .\\\"    All rights reserved.\n\
  256. .\\\"\n\
  257. .\\\"    This program is free software; you can redistribute it and/or modify\n\
  258. .\\\"    it under the terms of the GNU General Public License as published by\n\
  259. .\\\"    the Free Software Foundation; either version 2 of the License, or\n\
  260. .\\\"    (at your option) any later version.\n\
  261. .\\\"\n\
  262. .\\\"    This program is distributed in the hope that it will be useful,\n\
  263. .\\\"    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  264. .\\\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  265. .\\\"    GNU General Public License for more details.\n\
  266. .\\\"\n\
  267. .\\\"    You should have received a copy of the GNU General Public License\n\
  268. .\\\"    along with this program; if not, write to the Free Software\n\
  269. .\\\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  270. .\\\"\n\
  271. .\\\" MANIFEST: manual entry for the ${basename $fn .1} command\n\
  272. .\\\"\n\
  273. .TH cook 1\n\
  274. .ds n) cook\n\
  275. .if n .ad l\n\
  276. .if n .hy 0\n\
  277. .if n .nr IN 8n\n\
  278. .SH NAME\n\
  279. \\*(n) \\- file construction tool\n\
  280. .SH SYNOPSIS\n\
  281. .B \\*(n)\n\
  282. [\n\
  283. .IR option \\&...\n\
  284. ]\n\
  285. .IR filename \\&...\n\
  286. .br\n\
  287. .B \\*(n)\n\
  288. .B -Help\n\
  289. .br\n\
  290. .B \\*(n)\n\
  291. .B -VERSion\n\
  292. .SH DESCRIPTION\n\
  293. The\n\
  294. .I \\*(n)\n\
  295. program is used to\n\
  296. .br\n\
  297. .ne 1i\n\
  298. .SH OPTIONS\n\
  299. The following options are understood:\n\
  300. .TP 8n\n\
  301. .B -Help\n\
  302. .br\n\
  303. Provide some help with using the\n\
  304. .I \\*(n)\n\
  305. program.\n\
  306. .TP 8n\n\
  307. .B -VERSion\n\
  308. .br\n\
  309. Print the version of the\n\
  310. .I \\*(n)\n\
  311. program being executed.\n\
  312. .PP\n\
  313. All other options will produce a diagnostic error.\n\
  314. .so o__rules.so\n\
  315. .so copyright.so\n";
  316.     },
  317.     {
  318.         pattern = [ "*.so", "*.ms", "*.me" ];
  319.         body = "\
  320. .\\\"\n\
  321. .\\\"    cook - file construction tool\n\
  322. .\\\"    Copyright (C) ${date %Y} Peter Miller.\n\
  323. .\\\"    All rights reserved.\n\
  324. .\\\"\n\
  325. .\\\"    This program is free software; you can redistribute it and/or modify\n\
  326. .\\\"    it under the terms of the GNU General Public License as published by\n\
  327. .\\\"    the Free Software Foundation; either version 2 of the License, or\n\
  328. .\\\"    (at your option) any later version.\n\
  329. .\\\"\n\
  330. .\\\"    This program is distributed in the hope that it will be useful,\n\
  331. .\\\"    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  332. .\\\"    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  333. .\\\"    GNU General Public License for more details.\n\
  334. .\\\"\n\
  335. .\\\"    You should have received a copy of the GNU General Public License\n\
  336. .\\\"    along with this program; if not, write to the Free Software\n\
  337. .\\\"    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  338. .\\\"\n\
  339. .\\\" MANIFEST: document describing ${basename $fn}\n\
  340. .\\\"\n";
  341.     },
  342.     {
  343.         pattern = [ "*" ];
  344.         body = "\
  345. #\n\
  346. #    cook - file construction tool\n\
  347. #    Copyright (C) ${date %Y} Peter Miller.\n\
  348. #    All rights reserved.\n\
  349. #\n\
  350. #    This program is free software; you can redistribute it and/or modify\n\
  351. #    it under the terms of the GNU General Public License as published by\n\
  352. #    the Free Software Foundation; either version 2 of the License, or\n\
  353. #    (at your option) any later version.\n\
  354. #\n\
  355. #    This program is distributed in the hope that it will be useful,\n\
  356. #    but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
  357. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\
  358. #    GNU General Public License for more details.\n\
  359. #\n\
  360. #    You should have received a copy of the GNU General Public License\n\
  361. #    along with this program; if not, write to the Free Software\n\
  362. #    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\
  363. #\n\
  364. # MANIFEST: fill me in\n\
  365. #\n";
  366.     }
  367. ];
  368.