diff --git a/.github/workflows/make.yml b/.github/workflows/make.yml index 8fb02e0e..7020fcb8 100644 --- a/.github/workflows/make.yml +++ b/.github/workflows/make.yml @@ -36,7 +36,7 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - - run: sudo make install + - run: sudo make install FORCE_INSTALL=true - run: make env lint test make-macos: runs-on: macos-14 @@ -52,5 +52,5 @@ jobs: run: brew install make bash - name: 'Add make to PATH' run: echo "/opt/homebrew/opt/make/libexec/gnubin" >> "$GITHUB_PATH" - - run: sudo make install + - run: sudo make install FORCE_INSTALL=true - run: make env lint test diff --git a/steps/install.sh b/steps/install.sh index 238a6e32..45d1e944 100755 --- a/steps/install.sh +++ b/steps/install.sh @@ -21,6 +21,57 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. + +LINUX_ONLY_PACKAGES=( + "coreutils" + "xpdf" + "libxml2-utils" +) + +MACOS_ONLY_PACKAGES=( + "gnu-sed" + "wget" + "poppler" + "libxml2" +) + +PACKAGES_BOTH=( + "pmd" + "jpeek" + "texlive" + "coreutils" + "parallel" + "bc" + "cloc" + "jq" + "shellcheck" + "aspell" + "xmlstarlet" + "gawk" + "inkscape" +) + +if [[ -z "$FORCE_INSTALL" ]]; then + echo "The following packages will be installed:" + + if "${LOCAL}/help/is-linux.sh"; then + PACKAGES=("${LINUX_ONLY_PACKAGES[@]}" "${PACKAGES_BOTH[@]}") + else + PACKAGES=("${MACOS_ONLY_PACKAGES[@]}" "${PACKAGES_BOTH[@]}") + fi + + for i in "${PACKAGES[@]}"; do + echo " - ${i}" + done + + read -p "Do you want to proceed with the installation? (y/n): " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Installation aborted by user." + exit 1 + fi +fi + set -e set -o pipefail