Changeset 13578 for trunk/ippTools/src/difftoolConfig.c
- Timestamp:
- May 31, 2007, 2:58:32 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/difftoolConfig.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/difftoolConfig.c
r12131 r13578 91 91 psMetadata *inputskyfileArgs = psMetadataAlloc(); 92 92 psMetadataAddStr(inputskyfileArgs, PS_LIST_TAIL, "-diff_id", 0, 93 "search by diff ID (required)", NULL);93 "search by diff ID", NULL); 94 94 psMetadataAddStr(inputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0, 95 "search by warp ID (required)", NULL);95 "search by warp ID", NULL); 96 96 psMetadataAddStr(inputskyfileArgs, PS_LIST_TAIL, "-skycell_id", 0, 97 97 "search by skycell ID", NULL); … … 132 132 "search by warp ID", NULL); 133 133 psMetadataAddStr(diffskyfileArgs , PS_LIST_TAIL, "-skycell_id", 0, 134 "define skycell ID (required)", NULL);134 "define skycell ID", NULL); 135 135 psMetadataAddStr(diffskyfileArgs, PS_LIST_TAIL, "-tess_id", 0, 136 "define tessellation ID (required)", NULL);136 "define tessellation ID", NULL); 137 137 psMetadataAddU64(diffskyfileArgs, PS_LIST_TAIL, "-limit", 0, 138 138 "limit result set to N items", 0); … … 142 142 psFree(now); 143 143 144 #define PXTOOL_MODE(option, modeval, argset) \145 { \146 int N = 0; \147 if ((N = psArgumentGet (argc, argv, option))) { \148 psArgumentRemove (N, &argc, argv); \149 if (config->mode) { \150 psError(PS_ERR_UNKNOWN, true, "only one mode selection is allowed"); \151 psFree(config); \152 return NULL; \153 } \154 config->mode = modeval; \155 config->args = psMemIncrRefCounter(argset); \156 } \157 if (!psMetadataAddMetadata(argSets, PS_LIST_TAIL, option, 0, NULL, argset)) {;\158 psError(PS_ERR_UNKNOWN, false, "failed to add argset for %s", option); \159 } \160 psFree(argset); \161 }162 163 144 psMetadata *argSets = psMetadataAlloc(); 164 // find which mode we're running under 165 PXTOOL_MODE("-definerun", DIFFTOOL_MODE_DEFINERUN, definerunArgs); 166 PXTOOL_MODE("-updaterun", DIFFTOOL_MODE_UPDATERUN, updaterunArgs); 167 PXTOOL_MODE("-addinputskyfile", DIFFTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs); 168 PXTOOL_MODE("-inputskyfile", DIFFTOOL_MODE_INPUTSKYFILE, inputskyfileArgs); 169 PXTOOL_MODE("-todiffskyfile", DIFFTOOL_MODE_TODIFFSKYFILE, todiffskyfileArgs); 170 PXTOOL_MODE("-adddiffskyfile", DIFFTOOL_MODE_ADDDIFFSKYFILE, adddiffskyfileArgs); 171 PXTOOL_MODE("-diffskyfile", DIFFTOOL_MODE_DIFFSKYFILE, diffskyfileArgs); 172 173 bool argErr = false; 174 if (config->mode == DIFFTOOL_MODE_NONE) { 175 argErr = true; 176 fprintf (stderr, "mode argument is required\n"); 177 } else if (! psArgumentParse(config->args, &argc, argv) || argc != 1) { 178 argErr = true; 179 fprintf (stderr, "error parsing arguments\n"); 180 } 181 182 if (argErr) { 183 printf("\nPan-STARRS Difference Tool\n"); 184 printf("Usage: %s <mode> [<options>]\n\n", argv[0]); 185 printf(" <mode> :\n\n"); 186 187 psMetadataIterator *iter = psMetadataIteratorAlloc(argSets, 0, NULL); 188 psMetadataItem *item = NULL; 189 while ((item = psMetadataGetAndIncrement(iter))) { 190 if (!item->type == PS_DATA_METADATA) { 191 psAbort("all options must be specified as a metadata"); 192 } 193 194 fprintf(stdout, "%s ", item->name); 195 psArgumentHelp(item->data.md); 196 } 197 psFree(iter); 198 145 psMetadata *modes = psMetadataAlloc(); 146 147 PXTOOL_ADD_MODE("-definerun", "", DIFFTOOL_MODE_DEFINERUN, definerunArgs); 148 PXTOOL_ADD_MODE("-updaterun", "", DIFFTOOL_MODE_UPDATERUN, updaterunArgs); 149 PXTOOL_ADD_MODE("-addinputskyfile", "", DIFFTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs); 150 PXTOOL_ADD_MODE("-inputskyfile", "", DIFFTOOL_MODE_INPUTSKYFILE, inputskyfileArgs); 151 PXTOOL_ADD_MODE("-todiffskyfile", "", DIFFTOOL_MODE_TODIFFSKYFILE, todiffskyfileArgs); 152 PXTOOL_ADD_MODE("-adddiffskyfile", "", DIFFTOOL_MODE_ADDDIFFSKYFILE, adddiffskyfileArgs); 153 PXTOOL_ADD_MODE("-diffskyfile", "", DIFFTOOL_MODE_DIFFSKYFILE, diffskyfileArgs); 154 155 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { 156 psError(PS_ERR_UNKNOWN, true, "option parsing failed"); 199 157 psFree(argSets); 158 psFree(modes); 200 159 psFree(config); 201 160 return NULL; … … 203 162 204 163 psFree(argSets); 164 psFree(modes); 205 165 206 166 // setup search criterion … … 275 235 } 276 236 277 // save argv/argc278 config->argv = argv;279 config->argc = argc;280 281 237 return config; 282 238 }
Note:
See TracChangeset
for help on using the changeset viewer.
