#!/usr/bin/env bash # usage: ./tools/generate_dotnet_proj.sh ortools/sat/samples/SimpleSatProgram.cs set -e declare -r FILE="${1}" [[ -e "$FILE" ]] || exit 128 declare -r FILE_PROJ="${FILE}proj"; # shellcheck disable=SC2155 declare -r SRC=$(basename "$FILE") # shellcheck disable=SC2155 declare -r PACKAGES_PATH=$(realpath --relative-to="${FILE%/*}" packages) if [[ $FILE == *.cs ]] ; then declare -r LANG_VERSION=" 7.3" declare -r OR_TOOLS_PKG="Google.OrTools" else declare -r LANG_VERSION="" declare -r OR_TOOLS_PKG="Google.OrTools.FSharp" fi declare -r ASSEMBLY_NAME="${OR_TOOLS_PKG}.${SRC%.*}" # Gets OR_TOOLS_MAJOR and OR_TOOLS_MINOR declare DIR="${BASH_SOURCE%/*}" if [[ ! -d "${DIR}" ]]; then DIR="${PWD}"; fi # shellcheck disable=SC1090 . "${DIR}/../Version.txt" # Manage PackageReference(s) declare DEPS if [[ $(dirname "$FILE") == examples/tests ]] ; then declare -r PACKABLE="false" DEPS=$(cat < EOF ) else declare -r PACKABLE="true" DEPS=$(cat < EOF ) fi # Generate the .[cf]sproj file cat >"$FILE_PROJ" < Exe ${LANG_VERSION} netcoreapp2.1 false LatestMajor ${PACKAGES_PATH};\$(RestoreSources);https://api.nuget.org/v3/index.json ${ASSEMBLY_NAME} ${PACKABLE} full true true ${DEPS} EOL # vim: set tw=0 ts=2 sw=2 expandtab: