#!/bin/sh
#
# Copyright (C) 1993 by Oliver Trepte.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
# that the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.  This software is provided "as is" without express or
# implied warranty.

# SOURCE_DATE_EPOCH is an environment variable as described here:
# https://reproducible-builds.org/specs/source-date-epoch/ on 2017.03.16.

# COMPILED_BY is a similar environment variable whose value is some
# description of who is doing the build.  If it is not set, we use the
# value of LOGNAME; if that is not set, we use the value of User; if that
# is not set, we use the output of program 'whoami'.

SOURCE_DATE_OR_NONE=${SOURCE_DATE_EPOCH:-NONE}

NOW_FROM_DATE_PGM=$(date +%s)
if [ "$NOW_FROM_DATE_PGM" = "%s" ]; then
    # This system's 'date' doesn't know %s.  (Solaris 10 for example).
    # Try Perl
    BUILD_DATETIME=$(perl -e 'print time()')
else
    BUILD_DATETIME=$NOW_FROM_DATE_PGM
fi

LOGNAME_OR_UNKNOWN=${LOGNAME:-UNKNOWN}
USER_OR_UNKNOWN=${USER:-$LOGNAME_OR_UNKNOWN}
COMPILED_BY_OR_UNKNOWN=${COMPILED_BY:-$USER_OR_UNKNOWN}
if [ "$COMPILED_BY_OR_UNKNOWN" = "UNKNOWN" ]; then
    COMPILED_BY=$(whoami)
else
    COMPILED_BY=$COMPILED_BY_OR_UNKNOWN
fi

echo "/* This file tells some facts about the building of the package */"
echo "/* DO NOT EDIT - THIS FILE IS MAINTAINED AUTOMATICALLY */"
echo "/* Created by the program 'stamp-date'  */"
if [ "$SOURCE_DATE_OR_NONE" != "NONE" ]; then
  echo "#define SOURCE_DATETIME $SOURCE_DATE_OR_NONE"
fi
echo "#define BUILD_DATETIME $BUILD_DATETIME"
echo "#define COMPILED_BY \"$COMPILED_BY\""
