@@ -219,13 +219,13 @@ inputs:
219219outputs :
220220  checks-failed :
221221    description : An integer that can be used as a boolean value to indicate if any checks failed by clang-tidy and clang-format. 
222-     value : ${{ steps.cpp-linter-unix.outputs.checks-failed || steps.cpp-linter-windows .outputs.checks-failed }} 
222+     value : ${{ steps.cpp-linter.outputs.checks-failed }} 
223223  clang-tidy-checks-failed :
224224    description : An integer that can be used as a boolean value to indicate if any checks failed by clang-tidy only. 
225-     value : ${{ steps.cpp-linter-unix.outputs.clang-tidy-checks-failed || steps.cpp-linter-windows .outputs.clang-tidy-checks-failed }} 
225+     value : ${{ steps.cpp-linter.outputs.clang-tidy-checks-failed }} 
226226  clang-format-checks-failed :
227227    description : An integer that can be used as a boolean value to indicate if any checks failed by clang-format only. 
228-     value : ${{ steps.cpp-linter-unix.outputs.clang-format-checks-failed || steps.cpp-linter-windows .outputs.clang-format-checks-failed }} 
228+     value : ${{ steps.cpp-linter.outputs.clang-format-checks-failed }} 
229229runs :
230230  using : " composite" 
231231  steps :
@@ -237,9 +237,9 @@ runs:
237237        # First try installing from default Ubuntu repositories before trying LLVM script 
238238        if ! sudo apt-get install -y clang-format-${{ inputs.version }} clang-tidy-${{ inputs.version }}; then 
239239          # This LLVM script will add the relevant LLVM PPA: https://apt.llvm.org/ 
240-           wget https://apt.llvm.org/llvm.sh -O $GITHUB_ACTION_PATH/llvm_install.sh 
241-           chmod +x $GITHUB_ACTION_PATH/llvm_install.sh 
242-           if sudo $GITHUB_ACTION_PATH/llvm_install.sh ${{ inputs.version }}; then 
240+           wget https://apt.llvm.org/llvm.sh -O ${ GITHUB_ACTION_PATH%/} /llvm_install.sh 
241+           chmod +x ${ GITHUB_ACTION_PATH%/} /llvm_install.sh 
242+           if sudo ${ GITHUB_ACTION_PATH%/} /llvm_install.sh ${{ inputs.version }}; then 
243243            sudo apt-get install -y clang-format-${{ inputs.version }} clang-tidy-${{ inputs.version }} 
244244          fi 
245245        fi 
@@ -253,89 +253,62 @@ runs:
253253        ln -s "$(brew --prefix llvm@${{ inputs.version }})/bin/clang-format" "/usr/local/bin/clang-format-${{ inputs.version }}" 
254254        ln -s "$(brew --prefix llvm@${{ inputs.version }})/bin/clang-tidy" "/usr/local/bin/clang-tidy-${{ inputs.version }}" 
255255
256-      - name : Setup cpp-linter dependencies (Unix) 
257-       if : runner.os == 'Linux' || runner.os == 'macOS' 
258-       shell : bash 
259-       env :
260-         UV_NO_MODIFY_PATH : 1 
261-         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
262-         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
263-       run : | 
264-         curl -LsSf https://astral.sh/uv/install.sh | sh 
265-         ${{ env.UV_INSTALL_DIR }}/uv sync --config-file "${{ env.GITHUB_ACTION_PATH }}" --group action 
266-         ${{ env.UV_INSTALL_DIR }}/uv run clang-tools -i ${{ inputs.version }} -b 
256+      - name : Setup nu shell 
257+       uses : hustcer/setup-nu@v3 
258+       with :
259+         version : ' 0.106.1' 
267260
268-      - name : Setup cpp-linter dependencies (Windows) 
269-       if : runner.os == 'Windows' 
270-       shell : pwsh 
261+     - name : Setup cpp-linter dependencies 
262+       shell : nu {0} 
271263      env :
272264        UV_NO_MODIFY_PATH : 1 
273-         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
274-         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
275-       run : | 
276-         powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.8.9/install.ps1 | iex" 
277-         ${{ env.UV_INSTALL_DIR }}/uv sync --config-file "${{ env.GITHUB_ACTION_PATH }}" --group action 
278-         ${{ env.UV_INSTALL_DIR }}/uv run clang-tools -i ${{ inputs.version }} -b 
265+       run : |- 
266+         let action_path = $env.GITHUB_ACTION_PATH | str trim --right --char '/' 
267+         $env.UV_INSTALL_DIR = $action_path | path join 'bin' 
268+         $env.UV_PROJECT_ENVIRONMENT = $action_path | path join '.venv' 
279269
280-      - name : Run cpp-linter (Unix) 
281-       if : runner.os == 'Linux' || runner.os == 'macOS' 
282-       id : cpp-linter-unix 
283-       shell : bash 
284-       env :
285-         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
286-         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
287-       run : >- 
288-         ${{ env.UV_INSTALL_DIR }}/uv run 
289-         cpp-linter 
290-         --style="${{ inputs.style }}" 
291-         --extensions=${{ inputs.extensions }} 
292-         --tidy-checks="${{ inputs.tidy-checks }}" 
293-         --repo-root=${{ inputs.repo-root }} 
294-         --version=${{ inputs.version }} 
295-         --verbosity=${{ inputs.verbosity }} 
296-         --lines-changed-only=${{ inputs.lines-changed-only }} 
297-         --files-changed-only=${{ inputs.files-changed-only }} 
298-         --thread-comments=${{ inputs.thread-comments }} 
299-         --no-lgtm=${{ inputs.no-lgtm }} 
300-         --step-summary=${{ inputs.step-summary }} 
301-         --ignore="${{ inputs.ignore }}" 
302-         --ignore-tidy="${{ inputs.ignore-tidy }}" 
303-         --ignore-format="${{ inputs.ignore-format }}" 
304-         --database=${{ inputs.database }} 
305-         --file-annotations=${{ inputs.file-annotations }} 
306-         --extra-arg="${{ inputs.extra-args }}" 
307-         --tidy-review="${{ inputs.tidy-review }}" 
308-         --format-review="${{ inputs.format-review }}" 
309-         --passive-reviews="${{ inputs.passive-reviews }}" 
310-         --jobs=${{ inputs.jobs }} 
270+         if ((sys host | get 'name') == 'Windows') { 
271+             ^powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.8.9/install.ps1 | iex" 
272+         } else { 
273+             ^curl -LsSf https://astral.sh/uv/install.sh | sh 
274+         } 
311275
312-      - name : Run cpp-linter (Windows) 
313-       id : cpp-linter-windows 
314-       shell : pwsh 
315-       env :
316-         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
317-         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
318-       run : >- 
319-         ${{ env.UV_INSTALL_DIR }}/uv run 
320-         cpp-linter 
321-         --style="${{ inputs.style }}" 
322-         --extensions=${{ inputs.extensions }} 
323-         --tidy-checks="${{ inputs.tidy-checks }}" 
324-         --repo-root=${{ inputs.repo-root }} 
325-         --version=${{ inputs.version }} 
326-         --verbosity=${{ inputs.verbosity }} 
327-         --lines-changed-only=${{ inputs.lines-changed-only }} 
328-         --files-changed-only=${{ inputs.files-changed-only }} 
329-         --thread-comments=${{ inputs.thread-comments }} 
330-         --no-lgtm=${{ inputs.no-lgtm }} 
331-         --step-summary=${{ inputs.step-summary }} 
332-         --ignore="${{ inputs.ignore }}" 
333-         --ignore-tidy="${{ inputs.ignore-tidy }}" 
334-         --ignore-format="${{ inputs.ignore-format }}" 
335-         --database=${{ inputs.database }} 
336-         --file-annotations=${{ inputs.file-annotations }} 
337-         --extra-arg="${{ inputs.extra-args }}" 
338-         --tidy-review="${{ inputs.tidy-review }}" 
339-         --format-review="${{ inputs.format-review }}" 
340-         --passive-reviews="${{ inputs.passive-reviews }}" 
341-         --jobs=${{ inputs.jobs }} 
276+         ^$'($env.UV_INSTALL_DIR)/uv' sync --directory $action_path --group action 
277+         ^$'($env.UV_INSTALL_DIR)/uv' run clang-tools -i ${{ inputs.version }} -b 
278+ 
279+      - name : Run cpp-linter 
280+       id : cpp-linter 
281+       shell : nu {0} 
282+       run : |- 
283+         let action_path = ( 
284+           $env.GITHUB_ACTION_PATH 
285+           | str trim --right --char '/' 
286+         ) 
287+         $env.UV_INSTALL_DIR = $action_path | path join 'bin' 
288+         $env.UV_PROJECT_ENVIRONMENT = $action_path | path join '.venv' 
289+ 
290+         let args = [ 
291+             --style="${{ inputs.style }}" 
292+             --extensions=${{ inputs.extensions }} 
293+             --tidy-checks="${{ inputs.tidy-checks }}" 
294+             --repo-root=${{ inputs.repo-root }} 
295+             --version=${{ inputs.version }} 
296+             --verbosity=${{ inputs.verbosity }} 
297+             --lines-changed-only=${{ inputs.lines-changed-only }} 
298+             --files-changed-only=${{ inputs.files-changed-only }} 
299+             --thread-comments=${{ inputs.thread-comments }} 
300+             --no-lgtm=${{ inputs.no-lgtm }} 
301+             --step-summary=${{ inputs.step-summary }} 
302+             --ignore="${{ inputs.ignore }}" 
303+             --ignore-tidy="${{ inputs.ignore-tidy }}" 
304+             --ignore-format="${{ inputs.ignore-format }}" 
305+             --database=${{ inputs.database }} 
306+             --file-annotations=${{ inputs.file-annotations }} 
307+             --extra-arg="${{ inputs.extra-args }}" 
308+             --tidy-review="${{ inputs.tidy-review }}" 
309+             --format-review="${{ inputs.format-review }}" 
310+             --passive-reviews="${{ inputs.passive-reviews }}" 
311+             --jobs=${{ inputs.jobs }} 
312+         ] 
313+ 
314+         $'($env.UV_INSTALL_DIR)/uv' run cpp-linter ...$args 
0 commit comments