summaryrefslogtreecommitdiffstats
path: root/src/tools/g2/mkversion.c
blob: 0e22cfa86b5150d165fec923b3f5a33ce234ea33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 *------------------------------------------------------------------
 * Copyright (c) 1997-2016 Cisco and/or its affiliates.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <stdio.h>
#include <time.h>
#include <string.h>

int main (int argc, char **argv)
{
    time_t now;
    FILE *ofp;
    char *dateval;
    char *username;
    char *userstr;
    char *datestr;
    int i;
    char propname[32];
    char *propvalue;
    char timestr[64];
    char *cp;

    if (argc < 4) {
        printf ("usage: mkversion ostype version outputfile\n");
        exit (1);
    }

    ofp = fopen (argv[3], "w");
    if (ofp == NULL) {
        printf ("Couldn't create %s\n", argv[3]);
        exit (1);
    }

    now = time (0);

    fprintf (ofp, "/*\n");
    fprintf (ofp, " * G2 Version Stamp, %s",
             ctime (&now));
    fprintf (ofp, " * Automatically generated, hand edits are pointless.\n");
    fprintf (ofp, " */\n\n");

    fprintf (ofp,
            "const char *version_string = \"G2 (%s) major version %s\";\n",
             argv[1], argv[2]);

    username = (char *) cuserid (0);

    strncpy(timestr, ctime(&now), sizeof (timestr));

    cp = timestr;

    while (*cp) {
        cp++;
    }
    if (*--cp == '\n')
        *cp = 0;

    fprintf (ofp,
             "const char *minor_v_string = \"Built by %s at %s\";\n",
             username, timestr);

    exit (0);
}