#!/usr/bin/env bash

# This file is used to generate the annotation of package info that
# records the user, url, revision and timestamp.

#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#

set -e

unset LANG
unset LC_CTYPE

version=$1
if [ -z "$version" ]; then
  version=$(poetry version -s)
fi

pushd .

bin=`dirname "$0"`
PROJECT_ROOT=`cd "$bin"/.. >/dev/null; pwd`

user=$(whoami | sed -n -e "s/\\\/\\\\\\\\/p")
if [ "$user" == "" ]
then
  user=$(whoami)
fi
date=$(date)
cwd=$(pwd)

if [ -x "$(command -v git)" ]; then
  revision=$(git log -1 --no-show-signature --pretty=format:"%H" || true)
  repoUrl=$(git config --get remote.origin.url)
fi

if [ -z "${revision}" ]; then
  echo "[WARN] revision info is empty! either we're not in VCS or VCS commands failed." >&2
  revision="Unknown"
  repoUrl="file://$cwd"
fi

popd

cat >"$PROJECT_ROOT/tosfs/version.py" <<EOF
# ByteDance Volcengine EMR, Copyright 2024.
#
# 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.

"""The module contains version information about the tosfs package."""

#
# Generated by scripts/generate_version.sh
#
class Version:
    """The version information about the tosfs package."""
    version = "$version"
    revision = "$revision"
    user = "$user"
    date = "$date"
    repo_url = "$repoUrl"
EOF

