ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/JSOC/proj/globalhs/apps/set_history.c
Revision: 1.3
Committed: Sun Apr 28 07:59:17 2013 UTC (10 years, 4 months ago) by tplarson
Content type: text/plain
Branch: MAIN
CVS Tags: globalhs_version_5, Ver_8-7, Ver_8-5, globalhs_version_23, globalhs_version_22, globalhs_version_21, globalhs_version_20, Ver_LATEST, globalhs_version_24, Ver_8-3, globalhs_version_8, globalhs_version_9, globalhs_version_0, globalhs_version_1, globalhs_version_2, globalhs_version_3, globalhs_version_4, Ver_9-41, globalhs_version_6, globalhs_version_7, Ver_9-5, Ver_8-8, globalhs_version_19, Ver_8-2, Ver_8-10, Ver_8-1, Ver_8-6, Ver_9-1, Ver_8-4, Ver_9-2, globalhs_version_12, globalhs_version_13, globalhs_version_10, globalhs_version_11, globalhs_version_16, globalhs_version_17, globalhs_version_14, globalhs_version_15, globalhs_version_18, Ver_9-4, Ver_9-3, Ver_8-11, Ver_8-12, Ver_9-0, HEAD
Changes since 1.2: +8 -3 lines
Log Message:
got rid of HEADER, now use CVSTAG

File Contents

# Content
1 #include <unistd.h>
2 #ifndef CVSTAG
3 #define CVSTAG "undefined"
4 #endif
5
6 char *cvsinfo_set_history = "cvsinfo: $Header: set_info.c $";
7
8 long long set_history(DRMS_Link_t *histlink)
9 {
10 int status=0;
11 int len;
12 long long hold;
13 TIME tnow, UNIX_epoch = -220924792.000; /* 1970.01.01_00:00:00_UTC */
14 char path[DRMS_MAXPATHLEN+1];
15 DRMS_Record_t *histrec = drms_create_record(drms_env,
16 histlink->info->target_series,
17 DRMS_PERMANENT,
18 &status);
19
20 if (status != DRMS_SUCCESS)
21 {
22 fprintf(stderr,"ERROR: could not open a record in history dataseries %s, status = %d\n", histlink->info->target_series, status);
23 return -1;
24 }
25
26 if ((len=readlink("/proc/self/exe", path, DRMS_MAXPATHLEN)) == -1)
27 {
28 fprintf(stderr, "ERROR: cannot locate binary\n");
29 drms_close_record(histrec, DRMS_FREE_RECORD);
30 return -1;
31 }
32 else
33 path[len]='\0';
34
35 status = drms_setkey_string(histrec, "MODPATH", path);
36 if (status != DRMS_SUCCESS)
37 {
38 fprintf(stderr,"ERROR: problem writing keyword MODPATH in history dataseries, status = %d\n", status);
39 drms_close_record(histrec, DRMS_FREE_RECORD);
40 return -1;
41 }
42 status = drms_setkey_string(histrec, "MODNAME", cmdparams.argv[0]);
43 if (status != DRMS_SUCCESS)
44 {
45 fprintf(stderr,"ERROR: problem writing keyword MODNAME in history dataseries, status = %d\n", status);
46 drms_close_record(histrec, DRMS_FREE_RECORD);
47 return -1;
48 }
49 status = drms_setkey_string(histrec, "ARGSUSED", savestr);
50 if (status != DRMS_SUCCESS)
51 {
52 fprintf(stderr,"ERROR: problem writing keyword ARGSUSED in history dataseries, status = %d\n", status);
53 drms_close_record(histrec, DRMS_FREE_RECORD);
54 return -1;
55 }
56 status = drms_setkey_string(histrec, "CVSTAG", CVSTAG);
57 if (status != DRMS_SUCCESS)
58 {
59 fprintf(stderr,"ERROR: problem writing keyword CVSTAG in history dataseries, status = %d\n", status);
60 drms_close_record(histrec, DRMS_FREE_RECORD);
61 return -1;
62 }
63 tnow = (double)time(NULL);
64 tnow += UNIX_epoch;
65 status = drms_setkey_time(histrec, "DATE", tnow);
66 if (status != DRMS_SUCCESS)
67 {
68 fprintf(stderr,"ERROR: problem writing keyword DATE in history dataseries, status = %d\n", status);
69 drms_close_record(histrec, DRMS_FREE_RECORD);
70 return -1;
71 }
72
73 hold=histrec->recnum;
74 drms_close_record(histrec, DRMS_INSERT_RECORD);
75 return hold;
76 }