Skip to content

Commit c1a0440

Browse files
committed
💚 Use only one bash step so we can safely not use printf
1 parent a4b36af commit c1a0440

File tree

1 file changed

+28
-37
lines changed

1 file changed

+28
-37
lines changed

.github/actions/sync-uv/action.yml

Lines changed: 28 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -27,46 +27,37 @@ runs:
2727
with:
2828
enable-cache: true
2929

30-
- name: "Build groups args"
31-
shell: bash
32-
id: groups
33-
run: |
34-
set +e
35-
args=""
36-
if [ -n "${{ inputs.groups }}" ]; then
37-
IFS=',' read -ra GROUPS <<< "${{ inputs.groups }}"
38-
for group in "${GROUPS[@]}"; do
39-
group=$(echo "$group" | xargs)
40-
if [ -n "$group" ]; then
41-
args="$args --group $(printf %q "$group")"
42-
fi
43-
done
44-
fi
45-
echo "value=$args" >> $GITHUB_OUTPUT || exit 0
46-
47-
- name: "Build extras args"
48-
shell: bash
49-
id: extras
50-
run: |
51-
set +e
52-
args=""
53-
if [ -n "${{ inputs.extras }}" ]; then
54-
IFS=',' read -ra EXTRAS <<< "${{ inputs.extras }}"
55-
for extra in "${EXTRAS[@]}"; do
56-
extra=$(echo "$extra" | xargs)
57-
if [ -n "$extra" ]; then
58-
args="$args --extra $(printf %q "$extra")"
59-
fi
60-
done
61-
fi
62-
echo "value=$args" >> $GITHUB_OUTPUT || exit 0
63-
6430
- name: "Run UV sync"
6531
shell: bash
6632
run: |
67-
cmd="uv sync${{ steps.groups.outputs.value }}${{ steps.extras.outputs.value }}"
68-
echo "Executing: $cmd"
69-
eval "$cmd"
33+
cmd_args=("uv" "sync")
34+
35+
# groups
36+
if [ -n "${{ inputs.groups }}" ]; then
37+
IFS=',' read -ra GROUPS <<< "${{ inputs.groups }}"
38+
for group in "${GROUPS[@]}"; do
39+
group=$(echo "$group" | xargs)
40+
if [ -n "$group" ]; then
41+
cmd_args+=("--group" "$group")
42+
fi
43+
done
44+
fi
45+
echo "Groups: ${GROUPS[*]}"
46+
47+
# extras
48+
if [ -n "${{ inputs.extras }}" ]; then
49+
IFS=',' read -ra EXTRAS <<< "${{ inputs.extras }}"
50+
for extra in "${EXTRAS[@]}"; do
51+
extra=$(echo "$extra" | xargs)
52+
if [ -n "$extra" ]; then
53+
cmd_args+=("--extra" "$extra")
54+
fi
55+
done
56+
fi
57+
echo "Extras: ${EXTRAS[*]}"
58+
59+
echo "Executing: ${cmd_args[*]}"
60+
"${cmd_args[@]}"
7061
env:
7162
UV_NO_PYTHON_DOWNLOADS: ${{ inputs.no_python_downloads == 'true' && '1' || '' }}
7263
UV_FROZEN: ${{ inputs.frozen == 'true' && '1' || '' }}

0 commit comments

Comments
 (0)