4141 mkdir vendor
4242 pip install --target vendor \
4343 "pydantic>=2" \
44+ "pydantic-core" \
45+ "typing-extensions" \
46+ "annotated-types" \
4447 "semver>=3" \
4548 "click>=8"
4649
@@ -92,12 +95,17 @@ jobs:
9295 ln -s /opt/saltstack/salt-bundle/lib/salt_bundle "${SITE_PACKAGES}/salt_bundle"
9396 fi
9497
95- # Create symlinks for vendor dependencies
96- for vendordir in /opt/saltstack/salt-bundle/vendor/*; do
97- if [ -d "$vendordir" ]; then
98- basename=$(basename "$vendordir")
98+ # Create symlinks for vendor dependencies (directories and .py files)
99+ for vendoritem in /opt/saltstack/salt-bundle/vendor/*; do
100+ basename=$(basename "$vendoritem")
101+ # Skip special items
102+ case "$basename" in
103+ __pycache__|*.dist-info|bin) continue ;;
104+ esac
105+
106+ if [ -d "$vendoritem" ] || [ -f "$vendoritem" ]; then
99107 if [ ! -e "${SITE_PACKAGES}/${basename}" ]; then
100- ln -s "$vendordir " "${SITE_PACKAGES}/${basename}"
108+ ln -s "$vendoritem " "${SITE_PACKAGES}/${basename}"
101109 fi
102110 fi
103111 done
@@ -119,13 +127,15 @@ jobs:
119127 rm -f "${SITE_PACKAGES}/salt_bundle"
120128 fi
121129
122- # Remove vendor symlinks
123- for vendordir in /opt/saltstack/salt-bundle/vendor/*; do
124- if [ -d "$vendordir" ]; then
125- basename=$(basename "$vendordir")
126- if [ -L "${SITE_PACKAGES}/${basename}" ]; then
127- rm -f "${SITE_PACKAGES}/${basename}"
128- fi
130+ # Remove vendor symlinks (directories and files)
131+ for vendoritem in /opt/saltstack/salt-bundle/vendor/*; do
132+ basename=$(basename "$vendoritem")
133+ case "$basename" in
134+ __pycache__|*.dist-info|bin) continue ;;
135+ esac
136+
137+ if [ -L "${SITE_PACKAGES}/${basename}" ]; then
138+ rm -f "${SITE_PACKAGES}/${basename}"
129139 fi
130140 done
131141
0 commit comments