Skip to content

Commit 071b37a

Browse files
committed
Improve make_component.sh
- "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
1 parent 857e813 commit 071b37a

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

component/make_component.sh

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11
#!/usr/bin/env bash
2+
set -e
23

3-
COMPONENT_DIR="component_temp_dir"
4-
LANGUAGE_PATH="$COMPONENT_DIR/jre/languages/sl"
4+
readonly COMPONENT_DIR="component_temp_dir"
5+
readonly LANGUAGE_PATH="$COMPONENT_DIR/jre/languages/sl"
6+
readonly SIMPLE_LANGUAGE_JAR="../language/target/simplelanguage.jar"
57
if [[ -f ../native/slnative ]]; then
68
INCLUDE_SLNATIVE="TRUE"
79
fi
810

9-
rm -rf COMPONENT_DIR
11+
if [[ -d "$COMPONENT_DIR" ]]; then
12+
read -p "'$COMPONENT_DIR' already exists. Do you want to remove it? (y/N): " user_input
13+
if [[ "${user_input}" != "y" ]]; then
14+
exit 0
15+
fi
16+
rm -rf "$COMPONENT_DIR"
17+
fi
18+
19+
if [[ ! -f "$SIMPLE_LANGUAGE_JAR" ]]; then
20+
echo "Could not find '$SIMPLE_LANGUAGE_JAR'. Did you run mvn package?"
21+
exit 1
22+
fi
1023

1124
mkdir -p "$LANGUAGE_PATH"
12-
cp ../language/target/simplelanguage.jar "$LANGUAGE_PATH"
25+
cp "$SIMPLE_LANGUAGE_JAR" "$LANGUAGE_PATH"
1326

1427
mkdir -p "$LANGUAGE_PATH/launcher"
1528
cp ../launcher/target/sl-launcher.jar "$LANGUAGE_PATH/launcher/"
1629

1730
mkdir -p "$LANGUAGE_PATH/bin"
18-
cp ../sl $LANGUAGE_PATH/bin/
19-
if [[ $INCLUDE_SLNATIVE = "TRUE" ]]; then
20-
cp ../native/slnative $LANGUAGE_PATH/bin/
31+
cp ../sl "$LANGUAGE_PATH/bin/"
32+
if [[ "$INCLUDE_SLNATIVE" = "TRUE" ]]; then
33+
cp ../native/slnative "$LANGUAGE_PATH/bin/"
2134
fi
2235

2336
mkdir -p "$COMPONENT_DIR/META-INF"
@@ -29,12 +42,11 @@ mkdir -p "$COMPONENT_DIR/META-INF"
2942
echo "x-GraalVM-Polyglot-Part: True"
3043
} > "$COMPONENT_DIR/META-INF/MANIFEST.MF"
3144

32-
(
33-
cd $COMPONENT_DIR || exit 1
45+
pushd "$COMPONENT_DIR" > /dev/null
3446
jar cfm ../sl-component.jar META-INF/MANIFEST.MF .
3547

3648
echo "bin/sl = ../jre/languages/sl/bin/sl" > META-INF/symlinks
37-
if [[ $INCLUDE_SLNATIVE = "TRUE" ]]; then
49+
if [[ "$INCLUDE_SLNATIVE" = "TRUE" ]]; then
3850
echo "bin/slnative = ../jre/languages/sl/bin/slnative" >> META-INF/symlinks
3951
fi
4052
jar uf ../sl-component.jar META-INF/symlinks
@@ -44,5 +56,6 @@ jar uf ../sl-component.jar META-INF/symlinks
4456
echo "jre/languages/sl/bin/slnative = rwxrwxr-x"
4557
} > META-INF/permissions
4658
jar uf ../sl-component.jar META-INF/permissions
47-
)
48-
rm -rf $COMPONENT_DIR
59+
popd > /dev/null
60+
61+
rm -rf "$COMPONENT_DIR"

0 commit comments

Comments
 (0)