duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

gen_scmversion.sh (944B)


      1 #!/bin/sh
      2 
      3 VERSION_FILE="scmversion.cpp"
      4 
      5 CURDIR=$(pwd)
      6 if [ "$(uname -s)" = "Darwin" ]; then
      7   cd "$(dirname $(python3 -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' "$0"))"
      8 else
      9   cd $(dirname $(readlink -f $0))
     10 fi
     11 
     12 
     13 HASH=$(git rev-parse HEAD)
     14 BRANCH=$(git rev-parse --abbrev-ref HEAD | tr -d '\r\n')
     15 TAG=$(git describe --dirty | tr -d '\r\n')
     16 DATE=$(git log -1 --date=iso8601-strict --format=%cd)
     17 
     18 cd $CURDIR
     19 
     20 SIGNATURE_LINE="// ${HASH} ${BRANCH} ${TAG} ${DATE}"
     21 
     22 if [ -f $VERSION_FILE ]; then
     23   EXISTING_LINE=$(head -n1 $VERSION_FILE | tr -d '\n')
     24   if [ "$EXISTING_LINE" = "$SIGNATURE_LINE" ]; then
     25     echo "Signature matches, skipping writing ${VERSION_FILE}"
     26     exit 0
     27   fi
     28 fi
     29 
     30 echo "Writing ${VERSION_FILE}..."
     31 
     32 cat > $VERSION_FILE << EOF
     33 ${SIGNATURE_LINE}
     34 const char* g_scm_hash_str = "${HASH}";
     35 const char* g_scm_branch_str = "${BRANCH}";
     36 const char* g_scm_tag_str = "${TAG}";
     37 const char* g_scm_date_str = "${DATE}";
     38 
     39 EOF
     40