Skip to content

Commit 95993e8

Browse files
authored
Merge pull request #36 from drehelis/script_improvments
Refactor code for improved readability and consistency
2 parents c6f9491 + 17025b1 commit 95993e8

1 file changed

Lines changed: 25 additions & 12 deletions

File tree

scripts/update-data.sh

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11
#!/bin/bash
22
set -eo pipefail
33

4-
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5-
ROOT_DIR="$(dirname "$DIR")"
4+
readonly DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
readonly ROOT_DIR="$(dirname "$DIR")"
66
mkdir -p "$ROOT_DIR/public/data"
7-
FEATURES_FILE="$ROOT_DIR/public/data/features.json"
8-
TEMPLATES_FILE="$ROOT_DIR/public/data/templates.json"
9-
IMAGE_TAGS_FILE="$ROOT_DIR/public/data/imageTags.json"
7+
8+
readonly FEATURES_FILE="$ROOT_DIR/public/data/features.json"
9+
readonly TEMPLATES_FILE="$ROOT_DIR/public/data/templates.json"
10+
readonly IMAGE_TAGS_FILE="$ROOT_DIR/public/data/imageTags.json"
11+
12+
ensure_installed() {
13+
local pkg="$1"
14+
command -v "$pkg" &> /dev/null && return
15+
echo "$pkg could not be found. Installing via apt-get..."
16+
local apt_cmd="apt-get"
17+
command -v sudo &> /dev/null && apt_cmd="sudo apt-get"
18+
DEBIAN_FRONTEND=noninteractive $apt_cmd update && $apt_cmd install -y "$pkg"
19+
}
1020

1121
if ! command -v skopeo &> /dev/null; then
12-
echo "Skopeo could not be found. Installing via apt-get..."
13-
if command -v sudo &> /dev/null; then
14-
sudo apt-get update && sudo apt-get install -y skopeo
15-
else
16-
apt-get update && apt-get install -y skopeo
17-
fi
22+
ensure_installed skopeo
23+
fi
24+
25+
if ! command -v jq &> /dev/null; then
26+
ensure_installed jq
27+
fi
28+
29+
if ! command -v curl &> /dev/null; then
30+
ensure_installed curl
1831
fi
1932

20-
TMP_DIR=$(mktemp -d)
33+
readonly TMP_DIR=$(mktemp -d)
2134
trap 'rm -rf "$TMP_DIR"' EXIT
2235

2336
echo "Fetching devcontainer index via skopeo..."

0 commit comments

Comments
 (0)