diff --git a/component/make_component.sh b/component/make_component.sh index 8bdf00825..3742f3bf6 100755 --- a/component/make_component.sh +++ b/component/make_component.sh @@ -1,23 +1,36 @@ #!/usr/bin/env bash +set -e -COMPONENT_DIR="component_temp_dir" -LANGUAGE_PATH="$COMPONENT_DIR/jre/languages/sl" +readonly COMPONENT_DIR="component_temp_dir" +readonly LANGUAGE_PATH="$COMPONENT_DIR/jre/languages/sl" +readonly SIMPLE_LANGUAGE_JAR="../language/target/simplelanguage.jar" if [[ -f ../native/slnative ]]; then INCLUDE_SLNATIVE="TRUE" fi -rm -rf COMPONENT_DIR +if [[ -d "$COMPONENT_DIR" ]]; then + read -p "'$COMPONENT_DIR' already exists. Do you want to remove it? (y/N): " user_input + if [[ "${user_input}" != "y" ]]; then + exit 0 + fi + rm -rf "$COMPONENT_DIR" +fi + +if [[ ! -f "$SIMPLE_LANGUAGE_JAR" ]]; then + echo "Could not find '$SIMPLE_LANGUAGE_JAR'. Did you run mvn package?" + exit 1 +fi mkdir -p "$LANGUAGE_PATH" -cp ../language/target/simplelanguage.jar "$LANGUAGE_PATH" +cp "$SIMPLE_LANGUAGE_JAR" "$LANGUAGE_PATH" mkdir -p "$LANGUAGE_PATH/launcher" cp ../launcher/target/sl-launcher.jar "$LANGUAGE_PATH/launcher/" mkdir -p "$LANGUAGE_PATH/bin" -cp ../sl $LANGUAGE_PATH/bin/ -if [[ $INCLUDE_SLNATIVE = "TRUE" ]]; then - cp ../native/slnative $LANGUAGE_PATH/bin/ +cp ../sl "$LANGUAGE_PATH/bin/" +if [[ "$INCLUDE_SLNATIVE" = "TRUE" ]]; then + cp ../native/slnative "$LANGUAGE_PATH/bin/" fi mkdir -p "$COMPONENT_DIR/META-INF" @@ -29,12 +42,11 @@ mkdir -p "$COMPONENT_DIR/META-INF" echo "x-GraalVM-Polyglot-Part: True" } > "$COMPONENT_DIR/META-INF/MANIFEST.MF" -( -cd $COMPONENT_DIR || exit 1 +pushd "$COMPONENT_DIR" > /dev/null jar cfm ../sl-component.jar META-INF/MANIFEST.MF . echo "bin/sl = ../jre/languages/sl/bin/sl" > META-INF/symlinks -if [[ $INCLUDE_SLNATIVE = "TRUE" ]]; then +if [[ "$INCLUDE_SLNATIVE" = "TRUE" ]]; then echo "bin/slnative = ../jre/languages/sl/bin/slnative" >> META-INF/symlinks fi jar uf ../sl-component.jar META-INF/symlinks @@ -44,5 +56,6 @@ jar uf ../sl-component.jar META-INF/symlinks echo "jre/languages/sl/bin/slnative = rwxrwxr-x" } > META-INF/permissions jar uf ../sl-component.jar META-INF/permissions -) -rm -rf $COMPONENT_DIR +popd > /dev/null + +rm -rf "$COMPONENT_DIR"