Skip to content

Commit

Permalink
Improve make_component.sh
Browse files Browse the repository at this point in the history
- "Exit immediately if a command exits with a non-zero status." (set -e)
- Fix incorrect `rm -rf COMPONENT_DIR` and add user prompt before deleting directory
- Suggest to run `mvn package` when simplelanguage.jar is not found
- Use pushd/popd in favor of `cd $COMPONENT_DIR || exit 1`
- Mark variables as `readonly`
- Minor consistency fixes
  • Loading branch information
fniephaus committed Apr 14, 2019
1 parent 857e813 commit 071b37a
Showing 1 changed file with 25 additions and 12 deletions.
37 changes: 25 additions & 12 deletions component/make_component.sh
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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
Expand All @@ -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"

0 comments on commit 071b37a

Please sign in to comment.