#!/bin/bash
# Copyright (c) 2019, AT&T Intellectual Property.
# All rights reserved.
#
# SPDX-License-Identifier: GPL-2.0-only

#set -x

get_dev_version () {
  local ver=$1
  echo -n "$ver"
}

create_os_release_vyatta () {
  local NAME=$(scripts/get_vyatta_version --name)
  local PRETTY_NAME=$(scripts/get_vyatta_version --pretty_name)
  local PROJECT=$(scripts/get_vyatta_version --project)
    local VERSION=$(scripts/get_vyatta_version --no-fallback)
    local VERSION_ID=$(echo ${VERSION} | tr -d " ")

    # pick up values from base-files-vyatta
    cat /etc/os-release.vyatta > scripts/files/os-release.vyatta-version \
	2>/dev/null

    sed -i -e '/^PRETTY_NAME=/d' -e '/^NAME=/d' -e '/^VERSION=/d' \
	-e '/^VERSION_ID=/d' \
	scripts/files/os-release.vyatta-version

    # Ensure pretty name includes project codename (e.g., DANOS (Kington))
    cat >> scripts/files/os-release.vyatta-version <<EOF
PRETTY_NAME="${PRETTY_NAME}${PROJECT:+ (${PROJECT})}"
NAME="${NAME}"
ID="vyatta"
ID_LIKE=debian
HOME_URL="www.att.com"
SUPPORT_URL="www.att.com"
BUG_REPORT_URL="www.att.com"
${PROJECT:+VERSION_CODENAME="${PROJECT}"}
EOF

    if [ -n "${VERSION}" ] ; then
	cat >> scripts/files/os-release.vyatta-version <<EOF
VERSION="${VERSION}"
VERSION_ID="${VERSION_ID}"
EOF
    fi

    # Build Shipping stamp automatically: (DANOS:Shipping:<VERSION>:<YYYYMMDD>)
    # Prefer BUILD_TIME if provided, else current UTC date.
    SHIPPING_DATE=$(date -u +'%Y%m%d')
    if [ -n "$BUILD_TIME" ]; then
      SHIPPING_DATE=$(date -d "$BUILD_TIME" -u +'%Y%m%d')
    fi
    
    VYATTA_PROJECT_ID="DANOS:Shipping:${VERSION}:${SHIPPING_DATE}"
    
    cat >> scripts/files/os-release.vyatta-version <<EOF
VYATTA_PROJECT_ID="${VYATTA_PROJECT_ID}"
EOF
}

mk_dev_version_files () {
  FULLVER=$(scripts/get_vyatta_version --pretty_name)
  VVERSION=$(scripts/get_vyatta_version | tr -d " ")
  VYATTA_DEV_VERSION=$(get_dev_version "$VVERSION")

  # Always include project codename in the human-readable version string
  FULLVER+=" ($(scripts/get_vyatta_version --project))"
  FULLVER+=" $(scripts/get_vyatta_version)"

  # Build Shipping stamp automatically: (DANOS:Shipping:<VERSION>:<YYYYMMDD>)
  # Prefer BUILD_TIME if provided, else current UTC date.
  SHIPPING_DATE=$(date -u +'%Y%m%d')
  if [ -n "$BUILD_TIME" ]; then
    SHIPPING_DATE=$(date -d "$BUILD_TIME" -u +'%Y%m%d')
  fi
  if [ -n "$(scripts/get_vyatta_version --no-fallback)" ]; then
    FULLVER+=" (DANOS:Shipping:${VVERSION}:${SHIPPING_DATE})"
  fi

  touch scripts/files/version
  echo "Version:      ${VYATTA_DEV_VERSION}">scripts/files/version
  echo "Description:  ${FULLVER}">>scripts/files/version

  #echo for debian/rules
  echo ${VVERSION}
}

if [ -n "$BUILD_TIME" ]; then
  CURYEAR=$(date -d "$BUILD_TIME" -u +'%Y')
fi

: ${CURYEAR:=$(date +'%Y')}

rm -rf scripts/files ; mkdir scripts/files
create_os_release_vyatta
mk_dev_version_files
