IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 8, 2008, 1:32:07 PM (18 years ago)
Author:
eugene
Message:

some big cleanups of the argument parsing; more is needed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/regtoolConfig.c

    r17585 r17591  
    3030#include "regtool.h"
    3131
     32#define ADD_OPT(TYPE,TARG,NAME,COMMENT,DEFAULT) psMetadataAdd##TYPE(TARG, PS_LIST_TAIL, NAME, 0, COMMENT, DEFAULT)     
     33
    3234pxConfig *regtoolConfig(pxConfig *config, int argc, char **argv)
    3335{
     
    5052// support for this options is unimplemented
    5153#if 0
    52     psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
    53         "search by exposure ID", NULL);
    54     psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class",  0,
    55         "search by class", NULL);
    56     psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id",  0,
    57         "search by class ID", NULL);
     54    ADD_OPT(Str,  pendingimfileArgs, "-exp_id",    "search by exposure ID", NULL);
     55    ADD_OPT(Str,  pendingimfileArgs, "-class",     "search by class",       NULL);
     56    ADD_OPT(Str,  pendingimfileArgs, "-class_id",  "search by class ID",    NULL);
    5857#endif
    59     psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit",  0,
    60         "limit result set to N items", 0);
    61     psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple",  0,
    62         "use the simple output format", false);
     58    ADD_OPT(U64,  pendingimfileArgs, "-limit",     "limit result set to N items",  0);
     59    ADD_OPT(Bool, pendingimfileArgs, "-simple",    "use the simple output format", false);
    6360
    6461    // -addprocessedimfile
    6562    psMetadata *addprocessedimfileArgs = psMetadataAlloc();
    66     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",         0, "define exposure ID (required)", NULL);
    67     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_name",       0, "define the exp_name (required)", NULL);
    68     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-inst",           0, "define the camera name (required)", NULL);
    69     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-telescope",      0, "define the telescope name (required)", NULL);
    70     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-tmp_class_id",   0, "define temp. class ID (required)", NULL);
    71     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id",       0, "define class ID (required)", NULL);
    72     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri",            0, "define URI (required)", NULL);
    73     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_type",       0, "define exposure type", NULL);
    74     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-filelevel",      0, "define filelevel", NULL);
    75     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-filter",         0, "define filter ", NULL);
    76     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-comment",        0, "define comment ", NULL);
    77     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-airmass",        0, "define airmass", NAN);
    78     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-ra",             0, "define RA", NAN);
    79     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-decl",           0, "define DEC", NAN);
    80     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_time",       0, "define exposure time", NAN);
    81     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-sat_pixel_frac", 0, "define fraction of saturated pixels", NAN);
    82     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg",             0, "define exposue background", NAN);
    83     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev",       0, "define exposue background stdev", NAN);
    84     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0, "define exposue background mean stdev", NAN);
    85     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-alt",            0, "define altitute", NAN);
    86     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-az",             0, "define azimuth", NAN);
    87     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-ccd_temp",       0, "define ccd tempature", NAN);
    88     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-posang",         0, "define rotator position angle", NAN);
    89     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_x",           0, "define M1 X position", NAN);
    90     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_y",           0, "define M1 Y position", NAN);
    91     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_z",           0, "define M1 Z position", NAN);
    92     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_tip",         0, "define M1 TIP position", NAN);
    93     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_tilt",        0, "define M1 TILT position", NAN);
    94     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_x",           0, "define M2 X position", NAN);
    95     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_y",           0, "define M2 Y position", NAN);
    96     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_z",           0, "define M2 Z position", NAN);
    97     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_tip",         0, "define M2 TIP position", NAN);
    98     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_tilt",        0, "define M2 TILT position", NAN);
    99     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_temperature",0, "define Environmental Temperature", NAN);
    100     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_humidity",   0, "define Environmental Humidity", NAN);
    101     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_wind_speed", 0, "define Environmental Wind Speed", NAN);
    102     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_wind_dir",   0, "define Environmental Wind Direction", NAN);
    103     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_m1",     0, "define Telescope Temperature : M1", NAN);
    104     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_m1cell", 0, "define Telescope Temperature : M1 Cell", NAN);
    105     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_m2",     0, "define Telescope Temperature : M2", NAN);
    106     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_spider", 0, "define Telescope Temperature : Spider", NAN);
    107     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_truss",  0, "define Telescope Temperature : Truss", NAN);
    108     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_extra",  0, "define Telescope Temperature : Extra", NAN);
    109     psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-pon_time",       0, "define time to last Power On", NAN);
    110     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_1",         0, "define user statistic (1)", NAN);
    111     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_2",         0, "define user statistic (2)", NAN);
    112     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_3",         0, "define user statistic (3)", NAN);
    113     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_4",         0, "define user statistic (4)", NAN);
    114     psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_5",         0, "define user statistic (5)", NAN);
    115     psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-object",         0, "define exposure object", NULL);
    116     psMetadataAddTime(addprocessedimfileArgs, PS_LIST_TAIL, "-dateobs",       0, "define observation time", NULL);
    117     psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code",           0, "set fault code", 0);
     63    ADD_OPT(Str,  addprocessedimfileArgs, "-exp_id",         "define exposure ID (required)",           NULL);
     64    ADD_OPT(Str,  addprocessedimfileArgs, "-exp_name",       "define the exp_name (required)",          NULL);
     65    ADD_OPT(Str,  addprocessedimfileArgs, "-inst",           "define the camera name (required)",       NULL);
     66    ADD_OPT(Str,  addprocessedimfileArgs, "-telescope",      "define the telescope name (required)",    NULL);
     67    ADD_OPT(Str,  addprocessedimfileArgs, "-tmp_class_id",   "define temp. class ID (required)",        NULL);
     68    ADD_OPT(Str,  addprocessedimfileArgs, "-class_id",       "define class ID (required)",              NULL);
     69    ADD_OPT(Str,  addprocessedimfileArgs, "-uri",            "define URI (required)",                   NULL);
     70    ADD_OPT(Str,  addprocessedimfileArgs, "-exp_type",       "define exposure type",                    NULL);
     71    ADD_OPT(Str,  addprocessedimfileArgs, "-filelevel",      "define filelevel",                        NULL);
     72    ADD_OPT(Str,  addprocessedimfileArgs, "-filter",         "define filter ",                          NULL);
     73    ADD_OPT(Str,  addprocessedimfileArgs, "-comment",        "define comment ",                         NULL);
     74    ADD_OPT(F32,  addprocessedimfileArgs, "-airmass",        "define airmass",                          NAN);
     75    ADD_OPT(F64,  addprocessedimfileArgs, "-ra",             "define RA",                               NAN);
     76    ADD_OPT(F64,  addprocessedimfileArgs, "-decl",           "define DEC",                              NAN);
     77    ADD_OPT(F32,  addprocessedimfileArgs, "-exp_time",       "define exposure time",                    NAN);
     78    ADD_OPT(F32,  addprocessedimfileArgs, "-sat_pixel_frac", "define fraction of saturated pixels",     NAN);
     79    ADD_OPT(F64,  addprocessedimfileArgs, "-bg",             "define exposue background",               NAN);
     80    ADD_OPT(F64,  addprocessedimfileArgs, "-bg_stdev",       "define exposue background stdev",         NAN);
     81    ADD_OPT(F64,  addprocessedimfileArgs, "-bg_mean_stdev",  "define exposue background mean stdev",    NAN);
     82    ADD_OPT(F64,  addprocessedimfileArgs, "-alt",            "define altitute",                         NAN);
     83    ADD_OPT(F64,  addprocessedimfileArgs, "-az",             "define azimuth",                          NAN);
     84    ADD_OPT(F32,  addprocessedimfileArgs, "-ccd_temp",       "define ccd tempature",                    NAN);
     85    ADD_OPT(F64,  addprocessedimfileArgs, "-posang",         "define rotator position angle",           NAN);
     86    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_x",           "define M1 X position",                    NAN);
     87    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_y",           "define M1 Y position",                    NAN);
     88    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_z",           "define M1 Z position",                    NAN);
     89    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_tip",         "define M1 TIP position",                  NAN);
     90    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_tilt",        "define M1 TILT position",                 NAN);
     91    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_x",           "define M2 X position",                    NAN);
     92    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_y",           "define M2 Y position",                    NAN);
     93    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_z",           "define M2 Z position",                    NAN);
     94    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_tip",         "define M2 TIP position",                  NAN);
     95    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_tilt",        "define M2 TILT position",                 NAN);
     96    ADD_OPT(F32,  addprocessedimfileArgs, "-env_temperature","define Environmental Temperature",        NAN);
     97    ADD_OPT(F32,  addprocessedimfileArgs, "-env_humidity",   "define Environmental Humidity",           NAN);
     98    ADD_OPT(F32,  addprocessedimfileArgs, "-env_wind_speed", "define Environmental Wind Speed",         NAN);
     99    ADD_OPT(F32,  addprocessedimfileArgs, "-env_wind_dir",   "define Environmental Wind Direction",     NAN);
     100    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_m1",     "define Telescope Temperature : M1",       NAN);
     101    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_m1cell", "define Telescope Temperature : M1 Cell",  NAN);
     102    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_m2",     "define Telescope Temperature : M2",       NAN);
     103    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_spider", "define Telescope Temperature : Spider",   NAN);
     104    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_truss",  "define Telescope Temperature : Truss",    NAN);
     105    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_extra",  "define Telescope Temperature : Extra",    NAN);
     106    ADD_OPT(F32,  addprocessedimfileArgs, "-pon_time",       "define time to last Power On",            NAN);
     107    ADD_OPT(F64,  addprocessedimfileArgs, "-user_1",         "define user statistic (1)",               NAN);
     108    ADD_OPT(F64,  addprocessedimfileArgs, "-user_2",         "define user statistic (2)",               NAN);
     109    ADD_OPT(F64,  addprocessedimfileArgs, "-user_3",         "define user statistic (3)",               NAN);
     110    ADD_OPT(F64,  addprocessedimfileArgs, "-user_4",         "define user statistic (4)",               NAN);
     111    ADD_OPT(F64,  addprocessedimfileArgs, "-user_5",         "define user statistic (5)",               NAN);
     112    ADD_OPT(Str,  addprocessedimfileArgs, "-object",         "define exposure object",                  NULL);
     113    ADD_OPT(Time, addprocessedimfileArgs, "-dateobs",        "define observation time",                 NULL);
     114    ADD_OPT(S16,  addprocessedimfileArgs, "-code",           "set fault code",                          0);
    118115
    119116    // -processedimfile
    120117    psMetadata *processedimfileArgs = psMetadataAlloc();
    121     psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
    122         "search by exposure ID", NULL);
    123     psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
    124         "search by class ID", NULL);
    125     psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit",  0,
    126         "limit result set to N items", 0);
    127     psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted",  0,
    128         "only return imfiles with a fault status set", false);
    129     psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple",  0,
    130         "use the simple output format", false);
     118   ADD_OPT(Str,  processedimfileArgs, "-exp_id",    "search by exposure ID",                       NULL);
     119   ADD_OPT(Str,  processedimfileArgs, "-class_id",  "search by class ID",                          NULL);
     120   ADD_OPT(U64,  processedimfileArgs, "-limit",     "limit result set to N items",                 0);
     121   ADD_OPT(Bool, processedimfileArgs, "-faulted",   "only return imfiles with a fault status set", false);
     122   ADD_OPT(Bool, processedimfileArgs, "-simple",    "use the simple output format",                false);
    131123
    132124    // -revertprocessedimfile
    133125    psMetadata *revertprocessedimfileArgs = psMetadataAlloc();
    134     psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
    135             "search by exposure ID (required)", NULL);
    136     psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-tmp_class_id",  0,
    137             "searcy by temp. class ID", NULL);
    138     psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
    139             "search by class ID", NULL);
    140     psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
    141             "search by fault code", 0);
     126    ADD_OPT(Str, revertprocessedimfileArgs, "-exp_id",        "search by exposure ID (required)", NULL);
     127    ADD_OPT(Str, revertprocessedimfileArgs, "-tmp_class_id",  "searcy by temp. class ID", NULL);
     128    ADD_OPT(Str, revertprocessedimfileArgs, "-class_id",      "search by class ID", NULL);
     129    ADD_OPT(S16, revertprocessedimfileArgs, "-code",          "search by fault code", 0);
    142130
    143131    // -updateprocessedimfile
    144132    psMetadata *updateprocessedimfileArgs = psMetadataAlloc();
    145     psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
    146         "search by exposure ID", NULL);
    147     psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
    148         "search by class ID", NULL);
    149     psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
    150         "set fault code (required)", INT16_MAX);
     133    ADD_OPT(Str, updateprocessedimfileArgs, "-exp_id",        "search by exposure ID", NULL);
     134    ADD_OPT(Str, updateprocessedimfileArgs, "-class_id",      "search by class ID", NULL);
     135    ADD_OPT(S16, updateprocessedimfileArgs, "-code",          "set fault code (required)", INT16_MAX);
    151136
    152137    // -pendingexp
     
    154139// support for these options in unimplemented
    155140#if 0
    156     psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_id",  0,
    157         "search by exposure ID", NULL);
    158     psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst",  0,
    159         "search by camera", NULL);
    160     psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope",  0,
    161         "search by telescope", NULL);
    162     psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type",  0,
    163         "search by exposure type", NULL);
     141    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_id",   0,        "search by exposure ID", NULL);
     142    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst",     0,        "search by camera", NULL);
     143    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope",0,        "search by telescope", NULL);
     144    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type", 0,        "search by exposure type", NULL);
    164145#endif
    165     psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",  0,
    166         "limit result set to N items", 0);
    167     psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple",  0,
    168         "use the simple output format", false);
     146    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",    0,        "limit result set to N items", 0);
     147    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple",  0,        "use the simple output format", false);
    169148
    170149    // -addprocessedexp
    171150    psMetadata *addprocessedexpArgs = psMetadataAlloc();
    172     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
    173         "exp_id to operate on (required)", NULL);
    174     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_name",  0,
    175         "define the exp_name (required)", NULL);
    176     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-inst",  0,
    177         "define the camera name (required)", NULL);
    178     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-telescope",  0,
    179         "define the telescope name (required)", NULL);
    180     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_tag",  0,
    181         "define the external exposure tag name (required)", NULL);
    182     psMetadataAddTime(addprocessedexpArgs, PS_LIST_TAIL, "-dateobs",  0,
    183         "define observation time", NULL);
    184     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_type",  0,
    185         "define exposure type", NULL);
    186     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filelevel",  0,
    187         "define the data partitioning level of this file", NULL);
    188     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-workdir",  0,
    189         "define the \"default\" workdir for this exposure", NULL);
    190     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-dvodb",  0,
    191         "define the dvodb for the next processing step", NULL);
    192     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-tess_id",  0,
    193         "define the tess_id for the next processing step", NULL);
    194     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-end_stage",  0,
    195         "define the end goal processing step", NULL);
    196     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-reduction",  0,
    197         "define the \"default\" reduction class for this exposure", NULL);
    198     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filter",  0,
    199         "define filter ", NULL);
    200     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-comment",  0,
    201         "define comment ", NULL);
    202     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-airmass",  0,
    203         "define airmass", NAN);
    204     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-ra",  0,
    205         "define RA", NAN);
    206     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-decl",  0,
    207         "define DEC", NAN);
    208     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-exp_time",  0,
    209         "define exposure time", NAN);
    210     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac",  0,
    211         "define fraction of saturated pixels", NAN);
    212     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg",  0,
    213         "define exposue background", NAN);
    214     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev",  0,
    215         "define exposue background stdev", NAN);
    216     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,
    217         "define exposue background mean stdev", NAN);
    218     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-alt",  0,
    219         "define altitute", NAN);
    220     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-az",  0,
    221         "define azimuth", NAN);
    222     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp",  0,
    223         "define ccd tempature", NAN);
    224     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-posang",  0,
    225         "define rotator position angle", NAN);
    226     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_x",  0,
    227             "define M1 X position", NAN);
    228     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_y",  0,
    229             "define M1 Y position", NAN);
    230     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_z",  0,
    231             "define M1 Z position", NAN);
    232     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tip",  0,
    233             "define M1 TIP position", NAN);
    234     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tilt",  0,
    235             "define M1 TILT position", NAN);
    236     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_x",  0,
    237             "define M2 X position", NAN);
    238     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_y",  0,
    239             "define M2 Y position", NAN);
    240     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_z",  0,
    241             "define M2 Z position", NAN);
    242     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tip",  0,
    243             "define M2 TIP position", NAN);
    244     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tilt",  0,
    245             "define M2 TILT position", NAN);
    246     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_temperature",  0,
    247             "define Environmental Temperature", NAN);
    248     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_humidity",  0,
    249             "define Environmental Humidity", NAN);
    250     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_speed",  0,
    251             "define Environmental Wind Speed", NAN);
    252     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_dir",  0,
    253             "define Environmental Wind Direction", NAN);
    254     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1",  0,
    255             "define Telescope Temperature : M1", NAN);
    256     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1cell",  0,
    257             "define Telescope Temperature : M1 Cell", NAN);
    258     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m2",  0,
    259             "define Telescope Temperature : M2", NAN);
    260     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_spider",  0,
    261             "define Telescope Temperature : Spider", NAN);
    262     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_truss",  0,
    263             "define Telescope Temperature : Truss", NAN);
    264     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_extra",  0,
    265             "define Telescope Temperature : Extra", NAN);
    266     psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-pon_time",  0,
    267             "define time to last Power On", NAN);
    268     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_1",  0,
    269             "define user statistic (1)", NAN);
    270     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_2",  0,
    271             "define user statistic (2)", NAN);
    272     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_3",  0,
    273             "define user statistic (3)", NAN);
    274     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_4",  0,
    275             "define user statistic (4)", NAN);
    276     psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5",  0,
    277             "define user statistic (5)", NAN);
    278     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-object",  0,
    279         "define exposure object", NULL);
    280     psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-label",  0,
    281         "define label for chip stage (non-detrend data only)", NULL);
    282     psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
    283         "set fault code", 0);
     151    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_id",           0,        "exp_id to operate on (required)", NULL);
     152    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_name",         0,        "define the exp_name (required)", NULL);
     153    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-inst",             0,        "define the camera name (required)", NULL);
     154    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-telescope",        0,        "define the telescope name (required)", NULL);
     155    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_tag",          0,        "define the external exposure tag name (required)", NULL);
     156    psMetadataAddTime(addprocessedexpArgs, PS_LIST_TAIL, "-dateobs",         0,        "define observation time", NULL);
     157    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_type",         0,        "define exposure type", NULL);
     158    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filelevel",        0,        "define the data partitioning level of this file", NULL);
     159    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-workdir",          0,        "define the \"default\" workdir for this exposure", NULL);
     160    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-dvodb",            0,        "define the dvodb for the next processing step", NULL);
     161    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-tess_id",          0,        "define the tess_id for the next processing step", NULL);
     162    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-end_stage",        0,        "define the end goal processing step", NULL);
     163    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-reduction",        0,        "define the \"default\" reduction class for this exposure", NULL);
     164    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filter",           0,        "define filter ", NULL);
     165    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-comment",          0,        "define comment ", NULL);
     166    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-airmass",          0,        "define airmass", NAN);
     167    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-ra",               0,        "define RA", NAN);
     168    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-decl",             0,        "define DEC", NAN);
     169    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-exp_time",         0,        "define exposure time", NAN);
     170    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac",   0,        "define fraction of saturated pixels", NAN);
     171    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg",               0,        "define exposue background", NAN);
     172    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev",         0,        "define exposue background stdev", NAN);
     173    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev",    0,        "define exposue background mean stdev", NAN);
     174    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-alt",              0,        "define altitute", NAN);
     175    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-az",               0,        "define azimuth", NAN);
     176    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp",         0,        "define ccd tempature", NAN);
     177    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-posang",           0,        "define rotator position angle", NAN);
     178    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_x",             0,        "define M1 X position", NAN);
     179    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_y",             0,        "define M1 Y position", NAN);
     180    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_z",             0,        "define M1 Z position", NAN);
     181    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tip",           0,        "define M1 TIP position", NAN);
     182    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tilt",          0,        "define M1 TILT position", NAN);
     183    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_x",             0,        "define M2 X position", NAN);
     184    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_y",             0,        "define M2 Y position", NAN);
     185    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_z",             0,        "define M2 Z position", NAN);
     186    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tip",           0,        "define M2 TIP position", NAN);
     187    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tilt",          0,        "define M2 TILT position", NAN);
     188    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_temperature",  0,        "define Environmental Temperature", NAN);
     189    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_humidity",     0,        "define Environmental Humidity", NAN);
     190    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_speed",   0,        "define Environmental Wind Speed", NAN);
     191    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_dir",     0,        "define Environmental Wind Direction", NAN);
     192    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1",       0,        "define Telescope Temperature : M1", NAN);
     193    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1cell",   0,        "define Telescope Temperature : M1 Cell", NAN);
     194    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m2",       0,        "define Telescope Temperature : M2", NAN);
     195    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_spider",   0,        "define Telescope Temperature : Spider", NAN);
     196    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_truss",    0,        "define Telescope Temperature : Truss", NAN);
     197    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_extra",    0,        "define Telescope Temperature : Extra", NAN);
     198    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-pon_time",         0,        "define time to last Power On", NAN);
     199    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_1",           0,        "define user statistic (1)", NAN);
     200    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_2",           0,        "define user statistic (2)", NAN);
     201    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_3",           0,        "define user statistic (3)", NAN);
     202    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_4",           0,        "define user statistic (4)", NAN);
     203    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5",           0,        "define user statistic (5)", NAN);
     204    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-object",           0,        "define exposure object", NULL);
     205    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-label",            0,        "define label for chip stage (non-detrend data only)", NULL);
     206    psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code",             0,        "set fault code", 0);
    284207    /*
    285     psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-recip",  0,
    286         "define URL", NULL);
    287     psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-mosiac",  0,
    288         "define URL", NULL);
     208    psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-recip",  0,        "define URL", NULL);
     209    psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-mosiac",  0,        "define URL", NULL);
    289210    */
    290211
    291212    // -processedexp
    292213    psMetadata *processedexpArgs = psMetadataAlloc();
    293     psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_id",        0,            "search by exposure ID", NULL);
    294     psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_name",      0,            "search by exp_name", NULL);
    295     psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-inst",          0,            "search for camera", NULL);
    296     psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-telescope",     0,            "search for telescope", NULL);
     214    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_id",        0,            "search by exposure ID", NULL);
     215    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_name",      0,            "search by exp_name", NULL);
     216    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-inst",          0,            "search for camera", NULL);
     217    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-telescope",     0,            "search for telescope", NULL);
    297218    psMetadataAddTime(processedexpArgs, PS_LIST_TAIL, "-dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
    298219    psMetadataAddTime(processedexpArgs, PS_LIST_TAIL, "-dateobs_end",   0,            "search for exposures by time (<)", NULL);
     
    305226    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-airmass_max",   0,            "search by max airmass", NAN);
    306227    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ra_min",        0,            "search by min", NAN);
    307     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ra_max",        0,            "search by max", NAN);
    308     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_min",      0,            "search by min", NAN);
    309     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_max",      0,            "search by max", NAN);
     228    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ra_max",        0,            "search by max", NAN);
     229    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_min",      0,            "search by min", NAN);
     230    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_max",      0,            "search by max", NAN);
    310231    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-exp_time_min",  0,            "search by min", NAN);
    311232    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-exp_time_max",  0,            "search by max", NAN);
    312233    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-sat_pixel_frac_min",  0,      "search by max fraction of saturated pixels", NAN);
    313234    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-sat_pixel_frac_max",  0,      "search by min fraction of saturated pixels", NAN);
    314     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_min",        0,            "search by max", NAN);
    315     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_max",        0,            "search by max", NAN);
     235    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_min",        0,            "search by max", NAN);
     236    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_max",        0,            "search by max", NAN);
    316237    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_stdev_min",  0,            "search by max", NAN);
    317238    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_stdev_max",  0,            "search by max", NAN);
    318239    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_mean_stdev_min",  0,       "search by max", NAN);
    319240    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_mean_stdev_max",  0,       "search by max", NAN);
    320     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_min",       0,            "search by min", NAN);
    321     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_max",       0,            "search by max", NAN);
    322     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_min",        0,            "search by min", NAN);
    323     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_max",        0,            "search by max", NAN);
     241    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_min",       0,            "search by min", NAN);
     242    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_max",       0,            "search by max", NAN);
     243    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_min",        0,            "search by min", NAN);
     244    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_max",        0,            "search by max", NAN);
    324245    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ccd_temp_min",  0,            "search by min ccd tempature", NAN);
    325246    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ccd_temp_max",  0,            "search by max ccd tempature", NAN);
    326     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_min",    0,            "search by min rotator position angle", NAN);
    327     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_max",    0,            "search by max rotator position angle", NAN);
    328     psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-object",        0,            "search by exposure object", NULL);
    329     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_min",    0,            "define min solar angle", NAN);
    330     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_max",    0,            "define max solar angle", NAN);
    331 
    332     psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit",  0,
    333         "limit result set to N items", 0);
    334     psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted",  0,
    335         "only return imfiles with a fault status set", false);
    336     psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple",  0,
    337         "use the simple output format", false);
     247    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_min",    0,            "search by min rotator position angle", NAN);
     248    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_max",    0,            "search by max rotator position angle", NAN);
     249    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-object",        0,            "search by exposure object", NULL);
     250    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_min",    0,            "define min solar angle", NAN);
     251    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_max",    0,            "define max solar angle", NAN);
     252
     253    psMetadataAddU64(processedexpArgs,  PS_LIST_TAIL, "-limit",         0,            "limit result set to N items", 0);
     254    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted",       0,            "only return imfiles with a fault status set", false);
     255    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple",        0,            "use the simple output format", false);
    338256
    339257    // -revertprocessedexp
    340258    psMetadata *revertprocessedexpArgs = psMetadataAlloc();
    341     psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
    342             "search by exposure ID (required)", NULL);
    343     psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
    344             "search by fault code", 0);
     259    psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id",   0,            "search by exposure ID (required)", NULL);
     260    psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code",     0,            "search by fault code", 0);
    345261
    346262    // -updatedprocessedexp
    347263    psMetadata *updatedprocessedexpArgs = psMetadataAlloc();
    348     psMetadataAddStr(updatedprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
    349         "search by exposure ID", NULL);
    350     psMetadataAddS16(updatedprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
    351         "set fault code (required)", INT16_MAX);
     264    psMetadataAddStr(updatedprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exposure ID", NULL);
     265    psMetadataAddS16(updatedprocessedexpArgs, PS_LIST_TAIL, "-code",    0,            "set fault code (required)", INT16_MAX);
    352266   
    353 
    354267    psMetadata *argSets = psMetadataAlloc();
    355268    psMetadata *modes = psMetadataAlloc();
Note: See TracChangeset for help on using the changeset viewer.