diff --git a/.gitignore b/.gitignore index 5f4c0e212..8f5d5a1cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ # Stainless -/bin/stainless-* .stainless-cache/ .stainless.conf stainless.conf diff --git a/bin/stainless-cli b/bin/stainless-cli new file mode 100644 index 000000000..3d4ca9d9c --- /dev/null +++ b/bin/stainless-cli @@ -0,0 +1,85 @@ +#!/usr/bin/env bash + +### The following section defines `realpath` to resolve symbolic links. +### +### Copyright (c) 2014 Michael Kropat +### Licensed under the terms of the MIT License (https://opensource.org/licenses/MIT) +### Original code at https://github.com/mkropat/sh-realpath + +realpath() { + canonicalize_path "$(resolve_symlinks "$1")" +} + +resolve_symlinks() { + _resolve_symlinks "$1" +} + +_resolve_symlinks() { + _assert_no_path_cycles "$@" || return + + local dir_context path + path=$(readlink -- "$1") + if [ $? -eq 0 ]; then + dir_context=$(dirname -- "$1") + _resolve_symlinks "$(_prepend_dir_context_if_necessary "$dir_context" "$path")" "$@" + else + printf '%s\n' "$1" + fi +} + +_prepend_dir_context_if_necessary() { + if [ "$1" = . ]; then + printf '%s\n' "$2" + else + _prepend_path_if_relative "$1" "$2" + fi +} + +_prepend_path_if_relative() { + case "$2" in + /* ) printf '%s\n' "$2" ;; + * ) printf '%s\n' "$1/$2" ;; + esac +} + +_assert_no_path_cycles() { + local target path + + target=$1 + shift + + for path in "$@"; do + if [ "$path" = "$target" ]; then + return 1 + fi + done +} + +canonicalize_path() { + if [ -d "$1" ]; then + _canonicalize_dir_path "$1" + else + _canonicalize_file_path "$1" + fi +} + +_canonicalize_dir_path() { + (cd "$1" 2>/dev/null && pwd -P) +} + +_canonicalize_file_path() { + local dir file + dir=$(dirname -- "$1") + file=$(basename -- "$1") + (cd "$dir" 2>/dev/null && printf '%s/%s\n' "$(pwd -P)" "$file") +} + +### end of realpath code + +BASE_DIR="$( dirname "$( realpath "${BASH_SOURCE[0]}" )" )" +JARS="$BASE_DIR/lib" + +# NOTE: $JAVA_OPTS not quoted, as it may be empty! +TORUN="scala-cli --jar ${JARS}/stainless-library.jar ${JARS}/stainless-library-sources.jar $@" +echo $TORUN +${TORUN}