|
1 | 1 | #!/bin/bash |
2 | 2 | set -eo pipefail |
3 | 3 |
|
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")" |
6 | 6 | 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 | +} |
10 | 20 |
|
11 | 21 | 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 |
18 | 31 | fi |
19 | 32 |
|
20 | | -TMP_DIR=$(mktemp -d) |
| 33 | +readonly TMP_DIR=$(mktemp -d) |
21 | 34 | trap 'rm -rf "$TMP_DIR"' EXIT |
22 | 35 |
|
23 | 36 | echo "Fetching devcontainer index via skopeo..." |
|
0 commit comments