@@ -12,20 +12,62 @@ echo "==================================="
12
12
echo " GGScout Version: ${GGSCOUT_VERSION} "
13
13
echo " "
14
14
15
- # Fetch schemas for the specified version
15
+ # Fetch schemas for the specified version (integrated logic)
16
16
echo " Step 1: Fetching schemas..."
17
17
echo " -----------------------------------"
18
- if ! node scripts/fetch-schemas.js " ${GGSCOUT_VERSION} " ; then
18
+
19
+ fetch_schemas () {
20
+ local version=" $1 "
21
+ local SCHEMA_BASE_URL=" https://ggscout-repository.gitguardian.com/ggscout"
22
+ local REMOTE_SCHEMA_FILES=(" inventory-config.schema.json" " inventory-log-level.schema.json" )
23
+ local LOCAL_SCHEMA_FILES=(" jobs.schema.json" )
24
+ local CACHE_DIR=" .cache/schemas"
25
+ local version_cache_dir=" ${CACHE_DIR} /${version} "
26
+
27
+ echo " Fetching schemas for GGScout version: ${version} "
28
+
29
+ # Create version-specific cache directory
30
+ mkdir -p " ${version_cache_dir} "
31
+
32
+ # Download remote schemas
33
+ for schema_file in " ${REMOTE_SCHEMA_FILES[@]} " ; do
34
+ local url=" ${SCHEMA_BASE_URL} /${version} /schemas/${schema_file} "
35
+ local output_path=" ${version_cache_dir} /${schema_file} "
36
+
37
+ echo " Downloading: ${url} "
38
+ if curl -fsSL " ${url} " -o " ${output_path} " ; then
39
+ echo " ✓ Downloaded: ${schema_file} "
40
+ else
41
+ echo " ✗ Failed to download: ${schema_file} "
42
+ return 1
43
+ fi
44
+ done
45
+
46
+ # Copy local schemas
47
+ for schema_file in " ${LOCAL_SCHEMA_FILES[@]} " ; do
48
+ local local_path=" schemas/${schema_file} "
49
+ local output_path=" ${version_cache_dir} /${schema_file} "
50
+
51
+ if [[ -f " ${local_path} " ]]; then
52
+ cp " ${local_path} " " ${output_path} "
53
+ echo " ✓ Copied local schema: ${schema_file} "
54
+ else
55
+ echo " ✗ Local schema not found: ${local_path} "
56
+ return 1
57
+ fi
58
+ done
59
+
60
+ echo " ✓ All schemas ready in: ${version_cache_dir} "
61
+ return 0
62
+ }
63
+
64
+ if ! fetch_schemas " ${GGSCOUT_VERSION} " ; then
19
65
echo " Error: Failed to fetch schemas for version ${GGSCOUT_VERSION} "
20
66
exit 1
21
67
fi
22
68
23
69
# Determine schema source directory
24
70
SCHEMA_SOURCE_DIR=" .cache/schemas/${GGSCOUT_VERSION} "
25
- if [[ ! -d " ${SCHEMA_SOURCE_DIR} " ]]; then
26
- echo " Error: Schema cache directory not found: ${SCHEMA_SOURCE_DIR} "
27
- exit 1
28
- fi
29
71
30
72
echo " "
31
73
echo " Step 2: Bundling schemas..."
0 commit comments