Skip to content

Commit

Permalink
Add stainless-cli script (#1486)
Browse files Browse the repository at this point in the history
  • Loading branch information
mario-bucev authored Nov 15, 2023
1 parent 87f90a0 commit fe04db8
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 1 deletion.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Stainless
/bin/stainless-*
.stainless-cache/
.stainless.conf
stainless.conf
Expand Down
85 changes: 85 additions & 0 deletions bin/stainless-cli
Original file line number Diff line number Diff line change
@@ -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}

0 comments on commit fe04db8

Please sign in to comment.