Skip to content

Commit 022a463

Browse files
committed
Wrap generate configmap in a function to prevent from being called all the time
Signed-off-by: Patrick Knight <pknight@redhat.com>
1 parent e6f40b8 commit 022a463

1 file changed

Lines changed: 44 additions & 38 deletions

File tree

scripts/generate-configmap.sh

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,29 @@
77
# This script converts the upstream dynamic-plugins.default.yaml
88
# into a Kubernetes ConfigMap that can be applied to the cluster.
99
#
10+
generate_configmap() {
11+
set -euo pipefail
1012

11-
set -euo pipefail
13+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14+
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
15+
NAMESPACE="${1:-}"
1216

13-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14-
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
15-
NAMESPACE="${1:-}"
17+
INPUT_FILE="$PROJECT_ROOT/resources/rhdh/dynamic-plugins.default.yaml"
18+
OUTPUT_FILE="$PROJECT_ROOT/resources/rhdh/dynamic-plugins-configmap.yaml"
1619

17-
INPUT_FILE="$PROJECT_ROOT/resources/rhdh/dynamic-plugins.default.yaml"
18-
OUTPUT_FILE="$PROJECT_ROOT/resources/rhdh/dynamic-plugins-configmap.yaml"
20+
# Validate input file exists
21+
if [[ ! -f "$INPUT_FILE" ]]; then
22+
echo "ERROR: Input file not found: $INPUT_FILE"
23+
echo ""
24+
echo "Make sure dynamic-plugins.default.yaml exists in resources/rhdh/"
25+
echo "You can sync it from upstream by running:"
26+
echo " curl -sL https://raw.githubusercontent.com/redhat-developer/rhdh/main/dynamic-plugins.default.yaml \\"
27+
echo " -o resources/rhdh/dynamic-plugins.default.yaml"
28+
exit 1
29+
fi
1930

20-
# Validate input file exists
21-
if [[ ! -f "$INPUT_FILE" ]]; then
22-
echo "ERROR: Input file not found: $INPUT_FILE"
23-
echo ""
24-
echo "Make sure dynamic-plugins.default.yaml exists in resources/rhdh/"
25-
echo "You can sync it from upstream by running:"
26-
echo " curl -sL https://raw.githubusercontent.com/redhat-developer/rhdh/main/dynamic-plugins.default.yaml \\"
27-
echo " -o resources/rhdh/dynamic-plugins.default.yaml"
28-
exit 1
29-
fi
30-
31-
# Generate ConfigMap header
32-
cat > "$OUTPUT_FILE" << 'EOF'
31+
# Generate ConfigMap header
32+
cat > "$OUTPUT_FILE" << 'EOF'
3333
# AUTO-GENERATED - Do not edit directly
3434
# Source: dynamic-plugins.default.yaml from upstream RHDH
3535
# To regenerate: ./scripts/generate-configmap.sh
@@ -42,31 +42,37 @@ metadata:
4242
name: rhdh-dynamic-plugins
4343
EOF
4444

45-
# Add namespace if provided
46-
if [[ -n "$NAMESPACE" ]]; then
47-
echo " namespace: $NAMESPACE" >> "$OUTPUT_FILE"
48-
fi
45+
# Add namespace if provided
46+
if [[ -n "$NAMESPACE" ]]; then
47+
echo " namespace: $NAMESPACE" >> "$OUTPUT_FILE"
48+
fi
4949

50-
cat >> "$OUTPUT_FILE" << 'EOF'
50+
cat >> "$OUTPUT_FILE" << 'EOF'
5151
labels:
5252
backstage.io/kubernetes-id: developer-hub
5353
data:
5454
dynamic-plugins.yaml: |
5555
EOF
5656

57-
# Indent the YAML content (6 spaces for ConfigMap data block) and Remove leading spaces only from comment lines before 'plugins:'
58-
awk '
59-
/^[[:space:]]*plugins:/ { found=1 }
60-
!found && /^[[:space:]]*#/ { sub(/^[[:space:]]+/, "") }
61-
{ print " " $0 }
62-
' "$INPUT_FILE" >> "$OUTPUT_FILE"
57+
# Indent the YAML content (6 spaces for ConfigMap data block) and Remove leading spaces only from comment lines before 'plugins:'
58+
awk '
59+
/^[[:space:]]*plugins:/ { found=1 }
60+
!found && /^[[:space:]]*#/ { sub(/^[[:space:]]+/, "") }
61+
{ print " " $0 }
62+
' "$INPUT_FILE" >> "$OUTPUT_FILE"
63+
64+
# Summary
65+
PLUGIN_COUNT=$(grep -c "^- package:" "$INPUT_FILE" 2>/dev/null || echo "0")
66+
echo "Generated: $OUTPUT_FILE"
67+
echo " - Plugins: $PLUGIN_COUNT entries"
68+
if [[ -n "$NAMESPACE" ]]; then
69+
echo " - Namespace: $NAMESPACE"
70+
else
71+
echo " - Namespace: (not set - will use default or kubectl context)"
72+
fi
73+
}
6374

64-
# Summary
65-
PLUGIN_COUNT=$(grep -c "^- package:" "$INPUT_FILE" 2>/dev/null || echo "0")
66-
echo "Generated: $OUTPUT_FILE"
67-
echo " - Plugins: $PLUGIN_COUNT entries"
68-
if [[ -n "$NAMESPACE" ]]; then
69-
echo " - Namespace: $NAMESPACE"
70-
else
71-
echo " - Namespace: (not set - will use default or kubectl context)"
75+
# Only run if executed directly, not sourced
76+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
77+
generate_configmap "$@"
7278
fi

0 commit comments

Comments
 (0)