Skip to content

Commit 9c5c551

Browse files
authored
Merge pull request #202 from kukacz/custom-crd-script
Fixed crd_to_kcl.sh to work with latest kcl import structure
2 parents 4d98e20 + da6e534 commit 9c5c551

File tree

1 file changed

+31
-37
lines changed

1 file changed

+31
-37
lines changed

scripts/crd_to_kcl.sh

+31-37
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,59 @@
11
#!/bin/bash
22

3-
if [ "$#" -ne 1 ]; then
4-
echo "Usage: $0 <github-repo-url>"
3+
if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
4+
echo "Usage: $0 <github-repo-url> <version-tag>"
55
exit 1
66
fi
77

88
REPO_URL="$1"
9+
VER="$2"
10+
911
REPO_URL_SUFFIX=$(echo $REPO_URL | sed -n 's|.*github.com/||p')
1012
OWNER=$(echo $REPO_URL_SUFFIX | cut -d '/' -f 1)
1113
REPO=$(echo $REPO_URL_SUFFIX | cut -d '/' -f 2)
14+
[ -z "$VER" ] && REPOVER="$REPO" || REPOVER="$REPO@$VER"
15+
16+
export KCL_FAST_EVAL=1
1217

1318
if [ -z "$OWNER" ] || [ -z "$REPO" ]; then
1419
echo "Invalid GitHub repository URL."
1520
exit 1
1621
fi
22+
1723
# Init the kcl module
18-
kcl mod init $REPO
24+
if [ -z "$VER" ]; then
25+
kcl mod init $REPO
26+
else
27+
kcl mod init $REPO --version $VER
28+
fi
29+
1930
cd $REPO
31+
2032
# Get the Kubernetes CRD files
21-
wget "https://doc.crds.dev/raw/github.com/$OWNER/$REPO"
33+
wget "https://doc.crds.dev/raw/github.com/$OWNER/$REPOVER"
2234
mkdir -p crds
23-
mv $REPO crds/$REPO.yaml
35+
mv $REPOVER crds/$REPO.yaml
36+
2437
# Import Kubernetes CRD to KCL files
2538
kcl import -m crd -s ./crds/**
26-
rm -rf main.k
39+
2740
# Add the k8s dependency
2841
kcl mod add k8s
29-
rm -rf models/k8s
30-
31-
models_dir="models"
32-
regex="^(.*)_(v[0-9]+(alpha[0-9]+|beta[0-9]+)?)(.*)$"
42+
rm -rf main.k models/{k8s,kcl.mod}
3343

34-
if [ ! -d "$models_dir" ]; then
35-
echo "The directory '$models_dir' does not exist."
36-
exit 1
37-
fi
38-
39-
cd "$models_dir"
40-
41-
for file in *; do
42-
if [ -f "$file" ]; then
43-
if [[ $file =~ $regex ]]; then
44-
version="${BASH_REMATCH[2]}"
45-
mkdir -p "../$version"
46-
mv "$file" "../$version/"
47-
else
48-
echo "File '$file' does not contain a version number."
49-
fi
50-
fi
51-
done
52-
53-
cd -
54-
echo "Files have been grouped by version."
55-
rm -rf models
5644
# Check KCL runs
57-
for version_dir in *; do
58-
if [ -d "$version_dir" ]; then
59-
echo "Contents of '$version_dir':"
60-
kcl run ./$version_dir
45+
for version_dir in models/*/; do
46+
if [ $(basename $version_dir) == "unknown" ]; then
47+
rm -rf $version_dir
48+
continue
6149
fi
50+
echo "Contents of '$version_dir':"
51+
kcl run $version_dir
52+
mv $version_dir .
6253
done
63-
echo "Files have been grouped and listed by version."
54+
echo "Files have been listed by version."
55+
56+
rmdir models || exit 1
57+
6458
kcl doc generate
6559
mv ./docs/*.md README.md

0 commit comments

Comments
 (0)