From 9a5b26d70cd18fb8a99d7852f0307272d0103b9b Mon Sep 17 00:00:00 2001 From: Mario Bucev Date: Wed, 15 Nov 2023 11:39:46 +0100 Subject: [PATCH] Add stainless-cli script --- .gitignore | 1 - bin/stainless-cli | 85 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 bin/stainless-cli diff --git a/.gitignore b/.gitignore index 5f4c0e2121..8f5d5a1cb7 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 0000000000..3d4ca9d9c2 --- /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}