#!/usr/bin/env bash
#
# Copyright 2016-2021 The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0

# Install release build with buildRelease into /promoters
#
# Essentially replaced by genRelease

# Root of the Vulkan git repo
root=/home/tree/git/vulkan

# Directory with generated specs (core and core+WSI)
genspec=$root/out

# Promoter Vulkan directory in SVN
svnroot=/home/tree/khronos
promo=$svnroot/promoters/specs/candidates/vulkan

# Directory name for this release
date=`date +%Y%m%d`

install=$promo/$date
if test -d $install ; then
    echo "Target directory $install already exists, may overwrite! Continuing..."
else
    echo "Creating target directory $install"
    mkdir $install
fi

# Copy various files
cp $genspec/promoter.html $install/index.html
mkdir $install/core $install/wsi
cp -rp $genspec/core $genspec/wsi $genspec/df $install

echo "**** Specs are copied to $install"
echo "**** Please ensure that:"
echo "**** * The right files are all there"
echo "**** * The Data Format spec is also there"
echo "**** * Everything is added to SVN and committed to the server"
echo "You can get there by:"
echo "cd $promo"
echo "svn add $date"
