From ef03dbf695a356f9ca436fe126acc193f901b4a2 Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Tue, 30 Jan 2024 16:56:34 +0100 Subject: [PATCH] scan python requirements --- .github/workflows/test.yml | 5 ++++ _testing/autoinstall-python-prereqs.zsh | 31 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100755 _testing/autoinstall-python-prereqs.zsh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bda65f89f..f31c866c5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -79,6 +79,11 @@ jobs: pushd auto cpanm --quiet --installdeps --notest . popd + - name: auto-install python script dependencies + run: | + pip install pipreqs + ./_testing/autoinstall-python-prereqs.zsh + pip install -r pipreqs_scan/requirements.txt - name: run tests run: | ./_testing/run-test.zsh diff --git a/_testing/autoinstall-python-prereqs.zsh b/_testing/autoinstall-python-prereqs.zsh new file mode 100755 index 000000000..85fd8916e --- /dev/null +++ b/_testing/autoinstall-python-prereqs.zsh @@ -0,0 +1,31 @@ +#!/bin/zsh + +mkdir -p pipreqs_scan + +. ./_testing/_get_files_arr.zsh + +echo -n ... >&2 + +rfl=() +for fn ($filelist) { + if [[ -f $fn ]] { + rfl+=$fn + } +} +if [[ ${#rfl} -gt 0 ]] { + ln -rst pipreqs_scan $rfl +} +pipreqs pipreqs_scan + +typeset -A broken_mods +broken_mods=($(perl -MYAML::Tiny=LoadFile -e'print "$_ 1 " for @{LoadFile(+shift)->{pip}{broken_modules}}' _testing/config.yml)) + +typeset -a sed_del_broken +for mod (${(k)broken_mods}) { sed_del_broken+=(-e '/^'"$mod"'=/d') } + +sed -i \ + $sed_del_broken \ + pipreqs_scan/requirements.txt + +exit 0 +# vim:set sw=4 et: