Changeset 25822
- Timestamp:
- Oct 9, 2009, 2:02:24 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 12 edited
-
ippScripts/Build.PL (modified) (1 diff)
-
ippScripts/scripts/magic_destreak_cleanup.pl (added)
-
ippTasks/destreak.pro (modified) (7 diffs)
-
ippTools/share/Makefile.am (modified) (3 diffs)
-
ippTools/src/chiptool.c (modified) (3 diffs)
-
ippTools/src/chiptool.h (modified) (1 diff)
-
ippTools/src/chiptoolConfig.c (modified) (2 diffs)
-
ippTools/src/magicdstool.c (modified) (3 diffs)
-
ippTools/src/magicdstool.h (modified) (1 diff)
-
ippTools/src/magicdstoolConfig.c (modified) (2 diffs)
-
ippTools/src/warptool.c (modified) (3 diffs)
-
ippTools/src/warptool.h (modified) (1 diff)
-
ippTools/src/warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippScripts/Build.PL
r25299 r25822 59 59 scripts/magic_destreak.pl 60 60 scripts/magic_destreak_revert.pl 61 scripts/magic_destreak_cleanup.pl 61 62 scripts/ippdb.pl 62 63 scripts/ipp_cleanup.pl -
trunk/ippTasks/destreak.pro
r25708 r25822 10 10 book init magicToDS 11 11 book init magicDSToRevert 12 book init magicDSToCleanup 12 13 13 14 ### indexes into Database lists … … 16 17 $magicDSToRevert_DB = 0 17 18 $magicDSCompletedRevert_DB = 0 19 $magicDSToCleanup_DB = 0 18 20 19 21 #list of stages … … 32 34 book listbook magicToDS 33 35 book listbook magicDSToRevert 36 book init magicDSToCleanup 34 37 end 35 38 … … 38 41 book init magicToDS 39 42 book init magicDSToRevert 43 book init magicDSToCleanup 40 44 end 41 45 … … 71 75 end 72 76 77 macro destreak.cleanup.on 78 task destreak.cleanup.load 79 active true 80 end 81 task destreak.cleanup.run 82 active true 83 end 84 end 85 73 86 ### Turn tasks off 74 87 macro destreak.off … … 92 105 end 93 106 task destreak.completed.revert 107 active false 108 end 109 end 110 macro destreak.cleanup.off 111 task destreak.cleanup.load 112 active false 113 end 114 task destreak.cleanup.run 94 115 active false 95 116 end … … 489 510 end 490 511 512 task destreak.cleanup.load 513 host local 514 515 periods -poll $LOADPOLL 516 periods -exec $LOADEXEC 517 periods -timeout 20 518 npending 1 519 active false 520 521 stdout NULL 522 stderr $LOGSUBDIR/destreak.cleanup.load.log 523 524 task.exec 525 $run = magicdstool -tocleanup 526 if ($DB:n == 0) 527 option DEFAULT 528 else 529 530 # save the DB name for the exit tasks 531 option $DB:$magicDSToCleanup_DB 532 $run = $run -dbname $DB:$magicDSToCleanup_DB 533 534 # only bump database number after we have gone through all of the stages 535 $magicDSToCleanup_DB ++ 536 if ($magicDSToCleanup_DB >= $DB:n) set magicDSToCleanup_DB = 0 537 end 538 add_poll_args run 539 add_poll_labels run 540 command $run 541 end 542 543 # success 544 task.exit 0 545 # convert 'stdout' to book format 546 ipptool2book stdout magicDSToCleanup -key magic_ds_id -uniq -setword dbname $options:0 -setword pantaskState INIT 547 if ($VERBOSE > 2) 548 book listbook magicDSToCleanup 549 end 550 551 # delete existing entries in the appropriate pantaskStates 552 process_cleanup magicDSToCleanup 553 end 554 555 # locked list 556 task.exit default 557 showcommand failure 558 end 559 560 task.exit crash 561 showcommand crash 562 end 563 564 # operation times out? 565 task.exit timeout 566 showcommand timeout 567 end 568 end 569 570 task destreak.cleanup.run 571 periods -poll $RUNPOLL 572 periods -exec $RUNEXEC 573 periods -timeout 60 574 active false 575 576 task.exec 577 stdout $LOGSUBDIR/destreak.cleanup.run.log 578 stderr $LOGSUBDIR/destreak.cleanup.run.log 579 580 book npages magicDSToCleanup -var N 581 if ($N == 0) break 582 if ($NETWORK == 0) break 583 584 # look for new images (pantaskState == INIT) 585 book getpage magicDSToCleanup 0 -var pageName -key pantaskState INIT 586 if ("$pageName" == "NULL") break 587 588 book setword magicDSToCleanup $pageName pantaskState RUN 589 book getword magicDSToCleanup $pageName magic_ds_id -var MAGIC_DS_ID 590 book getword magicDSToCleanup $pageName camera -var CAMERA 591 book getword magicDSToCleanup $pageName outroot -var OUTROOT 592 book getword magicDSToCleanup $pageName dbname -var DBNAME 593 594 sprintf logfile "%s/mds.%s.cleanup.log" $OUTROOT $MAGIC_DS_ID 595 596 host anyhost 597 598 $run = magic_destreak_cleanup.pl --magic_ds_id $MAGIC_DS_ID --camera $CAMERA --logfile $logfile 599 600 add_standard_args run 601 602 # save the pageName for future reference below 603 options $pageName 604 605 # create the command line 606 if ($VERBOSE > 1) 607 echo command $run 608 end 609 command $run 610 end 611 612 # default exit status 613 task.exit 0 614 process_exit magicDSToCleanup $options:0 $JOB_STATUS 615 end 616 617 # locked list 618 task.exit default 619 showcommand failure 620 process_exit magicDSToCleanup $options:0 $JOB_STATUS 621 end 622 623 task.exit crash 624 showcommand crash 625 book setword magicDSToCleanup $options:0 pantaskState CRASH 626 end 627 628 # operation timed out? 629 task.exit timeout 630 showcommand timeout 631 book setword magicDSToCleanup $options:0 pantaskState TIMEOUT 632 end 633 end 634 -
trunk/ippTools/share/Makefile.am
r25816 r25822 36 36 chiptool_revertprocessedimfile.sql \ 37 37 chiptool_run.sql \ 38 chiptool_runstate.sql \ 38 39 chiptool_export_imfile.sql \ 39 40 chiptool_export_processed_imfile.sql \ … … 190 191 magicdstool_getskycells.sql \ 191 192 magicdstool_revertdestreakedfile.sql \ 193 magicdstool_tocleanup.sql \ 192 194 magicdstool_todestreak_camera.sql \ 193 195 magicdstool_todestreak_chip.sql \ … … 272 274 warptool_revertoverlap.sql \ 273 275 warptool_revertwarped_delete.sql \ 276 warptool_runstate.sql \ 274 277 warptool_scmap.sql \ 275 278 warptool_tooverlap.sql \ -
trunk/ippTools/src/chiptool.c
r25800 r25822 57 57 static bool exportrunMode(pxConfig *config); 58 58 static bool importrunMode(pxConfig *config); 59 static bool runstateMode(pxConfig *config); 59 60 60 61 # define MODECASE(caseName, func) \ … … 97 98 MODECASE(CHIPTOOL_MODE_EXPORTRUN, exportrunMode); 98 99 MODECASE(CHIPTOOL_MODE_IMPORTRUN, importrunMode); 100 MODECASE(CHIPTOOL_MODE_RUNSTATE, runstateMode); 99 101 default: 100 102 psAbort("invalid option (this should not happen)"); … … 1508 1510 return true; 1509 1511 } 1512 1513 static bool runstateMode(pxConfig *config) 1514 { 1515 PS_ASSERT_PTR_NON_NULL(config, false); 1516 1517 psMetadata *where = psMetadataAlloc(); 1518 PXOPT_COPY_S64(config->args, where, "-chip_id", "chipRun.chip_id", "=="); 1519 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 1520 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 1521 pxAddLabelSearchArgs (config, where, "-label", "chipRun.label", "LIKE"); 1522 1523 // PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1524 PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false); 1525 1526 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1527 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1528 1529 psString query = pxDataGet("chiptool_runstate.sql"); 1530 if (!query) { 1531 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1532 return false; 1533 } 1534 1535 if (psListLength(where->list)) { 1536 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1537 psStringAppend(&query, " WHERE %s", whereClause); 1538 psFree(whereClause); 1539 } else { 1540 psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required"); 1541 return false; 1542 } 1543 psFree(where); 1544 1545 // treat limit == 0 as "no limit" 1546 if (limit) { 1547 psString limitString = psDBGenerateLimitSQL(limit); 1548 psStringAppend(&query, " %s", limitString); 1549 psFree(limitString); 1550 } 1551 1552 if (!p_psDBRunQuery(config->dbh, query)) { 1553 psError(PS_ERR_UNKNOWN, false, "database error"); 1554 psFree(query); 1555 return false; 1556 } 1557 psFree(query); 1558 1559 psArray *output = p_psDBFetchResult(config->dbh); 1560 if (!output) { 1561 psErrorCode err = psErrorCodeLast(); 1562 switch (err) { 1563 case PS_ERR_DB_CLIENT: 1564 psError(PXTOOLS_ERR_SYS, false, "database error"); 1565 case PS_ERR_DB_SERVER: 1566 psError(PXTOOLS_ERR_PROG, false, "database error"); 1567 default: 1568 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1569 } 1570 1571 return false; 1572 } 1573 if (!psArrayLength(output)) { 1574 psTrace("chiptool", PS_LOG_INFO, "no rows found"); 1575 psFree(output); 1576 return true; 1577 } 1578 1579 if (psArrayLength(output)) { 1580 // negative simple so the default is true 1581 if (!ippdbPrintMetadatas(stdout, output, "chipRunState", !simple)) { 1582 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1583 psFree(output); 1584 return false; 1585 } 1586 } 1587 1588 psFree(output); 1589 1590 return true; 1591 } -
trunk/ippTools/src/chiptool.h
r25324 r25822 47 47 CHIPTOOL_MODE_TOSCRUBBEDIMFILE, 48 48 CHIPTOOL_MODE_EXPORTRUN, 49 CHIPTOOL_MODE_IMPORTRUN 49 CHIPTOOL_MODE_IMPORTRUN, 50 CHIPTOOL_MODE_RUNSTATE 50 51 } chiptoolMode; 51 52 -
trunk/ippTools/src/chiptoolConfig.c
r25800 r25822 271 271 psMetadataAddStr(importrunArgs, PS_LIST_TAIL, "-infile", 0, "import from this file (required)", NULL); 272 272 273 // -runstate 274 psMetadata *runstateArgs = psMetadataAlloc(); 275 psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip ID", 0); 276 psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure tag", 0); 277 psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exposure tag", 0); 278 psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by warpRun label", NULL); 279 psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not necessary for result", false); 280 281 psMetadataAddU64(runstateArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 282 psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 283 273 284 psMetadata *argSets = psMetadataAlloc(); 274 285 psMetadata *modes = psMetadataAlloc(); … … 281 292 PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties", CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,updateprocessedimfileArgs); 282 293 PXOPT_ADD_MODE("-revertprocessedimfile","undo a processed imfile", CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,revertprocessedimfileArgs); 294 PXOPT_ADD_MODE("-runstate", "list the states of chip run", CHIPTOOL_MODE_RUNSTATE, runstateArgs); 283 295 PXOPT_ADD_MODE("-advanceexp", "advance completed exposures", CHIPTOOL_MODE_ADVANCEEXP, advanceexpArgs); 284 296 PXOPT_ADD_MODE("-block", "set a label block", CHIPTOOL_MODE_BLOCK, blockArgs); -
trunk/ippTools/src/magicdstool.c
r25792 r25822 43 43 static bool torevertMode(pxConfig *config); 44 44 static bool completedrevertMode(pxConfig *config); 45 static bool tocleanupMode(pxConfig *config); 45 46 46 47 static bool setmagicDSRunState(pxConfig *config, psS64 magic_id, psMetadata *where, const char *state); … … 76 77 MODECASE(MAGICDSTOOL_MODE_TOREVERT, torevertMode); 77 78 MODECASE(MAGICDSTOOL_MODE_COMPLETEDREVERT, completedrevertMode); 79 MODECASE(MAGICDSTOOL_MODE_TOCLEANUP, tocleanupMode); 78 80 default: 79 81 psAbort("invalid option (this should not happen)"); … … 1221 1223 1222 1224 1225 static bool tocleanupMode(pxConfig *config) 1226 { 1227 PS_ASSERT_PTR_NON_NULL(config, false); 1228 1229 psMetadata *where = psMetadataAlloc(); 1230 1231 PXOPT_COPY_S64(config->args, where, "-stage", "stage", "=="); 1232 PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magic_ds_id", "=="); 1233 PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "=="); 1234 pxAddLabelSearchArgs (config, where, "-label", "magicDSRun.label", "=="); 1235 1236 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1237 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1238 1239 psString query = pxDataGet("magicdstool_tocleanup.sql"); 1240 if (!query) { 1241 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1242 return false; 1243 } 1244 1245 if (psListLength(where->list)) { 1246 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1247 psStringAppend(&query, " AND %s", whereClause); 1248 psFree(whereClause); 1249 } 1250 psFree(where); 1251 1252 // treat limit == 0 as "no limit" 1253 if (limit) { 1254 psString limitString = psDBGenerateLimitSQL(limit); 1255 psStringAppend(&query, " %s", limitString); 1256 psFree(limitString); 1257 } 1258 1259 if (!p_psDBRunQuery(config->dbh, query)) { 1260 psError(PS_ERR_UNKNOWN, false, "database error"); 1261 psFree(query); 1262 return false; 1263 } 1264 psFree(query); 1265 1266 psArray *output = p_psDBFetchResult(config->dbh); 1267 if (!output) { 1268 psErrorCode err = psErrorCodeLast(); 1269 switch (err) { 1270 case PS_ERR_DB_CLIENT: 1271 psError(PXTOOLS_ERR_SYS, false, "database error"); 1272 case PS_ERR_DB_SERVER: 1273 psError(PXTOOLS_ERR_PROG, false, "database error"); 1274 default: 1275 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1276 } 1277 1278 return false; 1279 } 1280 if (!psArrayLength(output)) { 1281 psTrace("magicdstool", PS_LOG_INFO, "no rows found"); 1282 psFree(output); 1283 return true; 1284 } 1285 1286 if (psArrayLength(output)) { 1287 // negative simple so the default is true 1288 if (!ippdbPrintMetadatas(stdout, output, "tocleanup", !simple)) { 1289 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1290 psFree(output); 1291 return false; 1292 } 1293 } 1294 1295 psFree(output); 1296 1297 return true; 1298 } -
trunk/ippTools/src/magicdstool.h
r25465 r25822 36 36 MAGICDSTOOL_MODE_TOREVERT, 37 37 MAGICDSTOOL_MODE_COMPLETEDREVERT, 38 MAGICDSTOOL_MODE_TOCLEANUP, 38 39 } MAGICDStoolMode; 39 40 -
trunk/ippTools/src/magicdstoolConfig.c
r25792 r25822 157 157 psMetadataAddU64(advancerunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 158 158 159 // -tocleanup 160 psMetadata *tocleanupArgs = psMetadataAlloc(); 161 psMetadataAddS64(tocleanupArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magic Destreak ID", 0); 162 psMetadataAddS64(tocleanupArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0); 163 psMetadataAddStr(tocleanupArgs, PS_LIST_TAIL, "-stage", 0, "define output directory", NULL); 164 psMetadataAddStr(tocleanupArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL); 165 psMetadataAddU64(tocleanupArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 166 psMetadataAddBool(tocleanupArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 159 167 psFree(now); 160 168 … … 185 193 PXOPT_ADD_MODE("-completedrevert", "change state for runs that have finished reverting", 186 194 MAGICDSTOOL_MODE_COMPLETEDREVERT, completedrevertArgs); 195 PXOPT_ADD_MODE("-tocleanup", "destreak runs to clean up", 196 MAGICDSTOOL_MODE_TOCLEANUP, tocleanupArgs); 187 197 188 198 -
trunk/ippTools/src/warptool.c
r25800 r25822 58 58 static bool exportrunMode(pxConfig *config); 59 59 static bool importrunMode(pxConfig *config); 60 static bool runstateMode(pxConfig *config); 60 61 61 62 static bool parseAndInsertSkyCellMap(pxConfig *config, const char *mapfile); … … 108 109 MODECASE(WARPTOOL_MODE_EXPORTRUN, exportrunMode); 109 110 MODECASE(WARPTOOL_MODE_IMPORTRUN, importrunMode); 111 MODECASE(WARPTOOL_MODE_RUNSTATE, runstateMode); 110 112 111 113 default: … … 1915 1917 return true; 1916 1918 } 1919 1920 static bool runstateMode(pxConfig *config) 1921 { 1922 PS_ASSERT_PTR_NON_NULL(config, false); 1923 1924 psMetadata *where = psMetadataAlloc(); 1925 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "=="); 1926 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 1927 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 1928 pxAddLabelSearchArgs (config, where, "-label", "warpRun.label", "LIKE"); 1929 1930 // PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1931 PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false); 1932 1933 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1934 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1935 1936 psString query = pxDataGet("warptool_runstate.sql"); 1937 if (!query) { 1938 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 1939 return false; 1940 } 1941 1942 if (psListLength(where->list)) { 1943 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1944 psStringAppend(&query, " WHERE %s", whereClause); 1945 psFree(whereClause); 1946 } else { 1947 psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required"); 1948 return false; 1949 } 1950 psFree(where); 1951 1952 // treat limit == 0 as "no limit" 1953 if (limit) { 1954 psString limitString = psDBGenerateLimitSQL(limit); 1955 psStringAppend(&query, " %s", limitString); 1956 psFree(limitString); 1957 } 1958 1959 if (!p_psDBRunQuery(config->dbh, query)) { 1960 psError(PS_ERR_UNKNOWN, false, "database error"); 1961 psFree(query); 1962 return false; 1963 } 1964 psFree(query); 1965 1966 psArray *output = p_psDBFetchResult(config->dbh); 1967 if (!output) { 1968 psErrorCode err = psErrorCodeLast(); 1969 switch (err) { 1970 case PS_ERR_DB_CLIENT: 1971 psError(PXTOOLS_ERR_SYS, false, "database error"); 1972 case PS_ERR_DB_SERVER: 1973 psError(PXTOOLS_ERR_PROG, false, "database error"); 1974 default: 1975 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1976 } 1977 1978 return false; 1979 } 1980 if (!psArrayLength(output)) { 1981 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1982 psFree(output); 1983 return true; 1984 } 1985 1986 if (psArrayLength(output)) { 1987 // negative simple so the default is true 1988 if (!ippdbPrintMetadatas(stdout, output, "warpRunState", !simple)) { 1989 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1990 psFree(output); 1991 return false; 1992 } 1993 } 1994 1995 psFree(output); 1996 1997 return true; 1998 } -
trunk/ippTools/src/warptool.h
r25324 r25822 53 53 WARPTOOL_MODE_UPDATESKYFILE, 54 54 WARPTOOL_MODE_EXPORTRUN, 55 WARPTOOL_MODE_IMPORTRUN 55 WARPTOOL_MODE_IMPORTRUN, 56 WARPTOOL_MODE_RUNSTATE, 56 57 } warptoolMode; 57 58 -
trunk/ippTools/src/warptoolConfig.c
r25800 r25822 318 318 psMetadataAddStr(importrunArgs, PS_LIST_TAIL, "-infile", 0, "import from this file (required)", NULL); 319 319 320 // -runstate 321 psMetadata *runstateArgs = psMetadataAlloc(); 322 psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warptool ID", 0); 323 // psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tessellation ID", NULL); 324 psMetadataAddS64(runstateArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exposure tag", 0); 325 psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exposure tag", 0); 326 psMetadataAddStr(runstateArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by warpRun label", NULL); 327 psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not necessary for result", false); 328 329 psMetadataAddU64(runstateArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 330 psMetadataAddBool(runstateArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 331 320 332 321 333 psFree(now); … … 336 348 PXOPT_ADD_MODE("-advancerun", "", WARPTOOL_MODE_ADVANCERUN, advancerunArgs); 337 349 PXOPT_ADD_MODE("-warped", "", WARPTOOL_MODE_WARPED, warpedArgs); 350 PXOPT_ADD_MODE("-runstate", "", WARPTOOL_MODE_RUNSTATE, runstateArgs); 338 351 PXOPT_ADD_MODE("-revertwarped", "", WARPTOOL_MODE_REVERTWARPED, revertwarpedArgs); 339 352 PXOPT_ADD_MODE("-block", "set a label block", WARPTOOL_MODE_BLOCK, blockArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
