IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 30, 2009, 3:47:06 PM (17 years ago)
Author:
bills
Message:

flesh out versioning and cleanup functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppbgrestore/src/ppbgrestoreVersion.c

    r25972 r25973  
    11#include "ppbgrestore.h"
    22
    3 void ppbgrestoreVersionPrint()
     3#ifndef PPBGRESTORE_VERSION
     4#error "PPBGRESTORE_VERSION is not set"
     5#endif
     6#ifndef PPBGRESTORE_BRANCH
     7#error "PPBGRESTORE_BRANCH is not set"
     8#endif
     9#ifndef PPBGRESTORE_SOURCE
     10#error "PPBGRESTORE_SOURCE is not set"
     11#endif
     12
     13psString ppbgrestoreVersion(void)
    414{
    5     // XXX: TODO
    6     printf("version 0.0\n");
     15    char *value = NULL;
     16    psStringAppend(&value, "%s@%s", PPBGRESTORE_BRANCH, PPBGRESTORE_VERSION);
     17    return value;
    718}
     19
     20psString ppbgrestoreSource(void)
     21{
     22    return psStringCopy(PPBGRESTORE_SOURCE);
     23}
     24
     25psString ppbgrestoreVersionLong(void)
     26{
     27    psString version = ppbgrestoreVersion();  // Version, to return
     28    psString source = ppbgrestoreSource(); // Source
     29
     30    psStringPrepend(&version, "ppbgrestore ");
     31    psStringAppend(&version, " from %s, built %s, %s", source, __DATE__, __TIME__);
     32    psFree(source);
     33
     34#ifdef __OPTIMIZE__
     35    psStringAppend(&version, " optimised");
     36#else
     37    psStringAppend(&version, " unoptimised");
     38#endif
     39
     40    return version;
     41};
     42
     43bool ppbgrestoreVersionHeader(psMetadata *header)
     44{
     45#ifdef notyet
     46    PS_ASSERT_METADATA_NON_NULL(header, false);
     47
     48    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
     49    psString timeString = psTimeToISO(time); // The time in an ISO string
     50    psFree(time);
     51    psString history = NULL;               // History string
     52    psStringAppend(&history, "ppbgrestore at %s", timeString);
     53    psFree(timeString);
     54    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, history);
     55    psFree(history);
     56
     57    psLibVersionHeader(header);
     58    psModulesVersionHeader(header);
     59    psphotVersionHeader(header);
     60    psastroVersionHeader(header);
     61    ppStatsVersionHeader(header);
     62
     63    psString version = ppbgrestoreVersion(); // ppbgrestore software version
     64    psString source  = ppbgrestoreSource();  // ppbgrestore software source
     65
     66    psStringPrepend(&version, "ppbgrestore version: ");
     67    psStringPrepend(&source, "ppbgrestore source: ");
     68
     69    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, version);
     70    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, source);
     71
     72    psFree(version);
     73    psFree(source);
     74#endif // notyet
     75
     76    return true;
     77}
     78
     79
     80void ppbgrestoreVersionPrint(void)
     81{
     82    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
     83    psString timeString = psTimeToISO(time); // The time in an ISO string
     84    psFree(time);
     85    psLogMsg("ppbgrestore", PS_LOG_INFO, "ppbgrestore at %s", timeString);
     86    psFree(timeString);
     87
     88    psString pslib = psLibVersionLong();// psLib version
     89    psString psmodules = psModulesVersionLong(); // psModules version
     90    psString psphot = psphotVersionLong(); // psphot version
     91    psString ppbgrestore = ppbgrestoreVersionLong(); // ppbgrestore version
     92
     93    psLogMsg("ppbgrestore", PS_LOG_INFO, "%s", pslib);
     94    psLogMsg("ppbgrestore", PS_LOG_INFO, "%s", psmodules);
     95    psLogMsg("ppbgrestore", PS_LOG_INFO, "%s", psphot);
     96    psLogMsg("ppbgrestore", PS_LOG_INFO, "%s", ppbgrestore);
     97
     98    psFree(pslib);
     99    psFree(psmodules);
     100    psFree(psphot);
     101    psFree(ppbgrestore);
     102
     103    return;
     104}
Note: See TracChangeset for help on using the changeset viewer.