From e68f7511b53895b1e4d27f99cd0989da29ac7a16 Mon Sep 17 00:00:00 2001 From: Kogia-sima Date: Sat, 2 Jan 2021 02:02:09 +0900 Subject: [PATCH 1/5] Add script for count dependencies --- scripts/count-dependencies.sh | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 scripts/count-dependencies.sh diff --git a/scripts/count-dependencies.sh b/scripts/count-dependencies.sh new file mode 100755 index 0000000..9160404 --- /dev/null +++ b/scripts/count-dependencies.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +IFS=$'\n' +PACKAGES=("sailfish" "sailfish-macros" "sailfish-compiler") + +git-root () { + if git rev-parse --is-inside-work-tree > /dev/null 2>&1; then + cd `git rev-parse --show-toplevel`; + fi +} + +get_dependencies() { + cargo tree -p "$1" | while read line; do + dev_dependencies_re="\[dev-dependencies\]" + crate_re="[a-zA-Z0-9_-]+ v[^ ]+" + + if [[ "$line" =~ $crate_re ]]; then + echo ${BASH_REMATCH[0]} + continue + fi + + if [[ "$line" =~ $dev_dependencies_re ]]; then + break + fi + done +} + +remove_packages() { + local found + + for dep in $@; do + found=0 + for pkg in ${PACKAGES[@]}; do + pat="$pkg v[^ ]" + if [[ "$dep" =~ $pat ]]; then + found=1 + break + fi + done + + if [[ $found == 0 ]]; then + echo $dep + fi + done +} + +# go to root directory +cd `git rev-parse --show-toplevel` + +deps=() + +for pkg in ${PACKAGES[@]}; do + deps+=( `get_dependencies $pkg` ) +done + +deps=( $(printf "%s\n" "${deps[@]}" | sort -u) ) + +remove_packages ${deps[*]} |wc -l From 716951469d53c593933b77292533298978fa6322 Mon Sep 17 00:00:00 2001 From: Kogia-sima Date: Sat, 2 Jan 2021 02:02:29 +0900 Subject: [PATCH 2/5] ci: Add GitHub Job to create badge for dependency counts --- .github/workflows/badge.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/badge.yml diff --git a/.github/workflows/badge.yml b/.github/workflows/badge.yml new file mode 100644 index 0000000..e8e4e11 --- /dev/null +++ b/.github/workflows/badge.yml @@ -0,0 +1,28 @@ +name: Badges + +on: + push: + branches: + # FIXME + - ci/dynamic-badge + - master + +jobs: + update-badges: + name: Update Badges + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + - name: Get the Numbers + run: | + echo "::set-env name=DEP_COUNTS::$(./scripts/count-dependencies.sh)" + - name: Create Dependency-Count-Badge + uses: schneegans/dynamic-badges-action@v1.0.0 + with: + auth: ${{ secrets.GIST_SECRET }} + gistID: a2128afe12bf05d85a0d68346236a4f5 + filename: sailfish-dep-counts.json + label: Dependencies + message: ${{ env.CODE_LINES }} + color: orange From 93298c704f621ddafc4b422b4a0ed7e9ec49cd33 Mon Sep 17 00:00:00 2001 From: Kogia-sima Date: Sat, 2 Jan 2021 02:05:01 +0900 Subject: [PATCH 3/5] Add Dependency-Counts badge in README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba2929f..befb725 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Simple, small, and extremely fast template engine for Rust [![Tests](https://github.com/Kogia-sima/sailfish/workflows/Tests/badge.svg)](https://github.com/Kogia-sima/sailfish/actions?query=workflow%3ATests) [![Version](https://img.shields.io/crates/v/sailfish)](https://crates.io/crates/sailfish) +![Dependency counts](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Kogia-sima/a2128afe12bf05d85a0d68346236a4f5/raw/sailfish-dep-counts.json) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/Kogia-sima/sailfish/blob/master/LICENSE) [User Guide](https://sailfish.netlify.app/en/) | [API Docs](https://docs.rs/sailfish) | [Examples](./examples) From 1f333395386a8003f13f864e203c8dbc0b82946b Mon Sep 17 00:00:00 2001 From: Kogia-sima Date: Sat, 2 Jan 2021 02:11:01 +0900 Subject: [PATCH 4/5] ci: Fix workflow --- .github/workflows/badge.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/badge.yml b/.github/workflows/badge.yml index e8e4e11..c54d84c 100644 --- a/.github/workflows/badge.yml +++ b/.github/workflows/badge.yml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@v2 - name: Get the Numbers run: | - echo "::set-env name=DEP_COUNTS::$(./scripts/count-dependencies.sh)" + echo "dep_counts=$(./scripts/count-dependencies.sh)" >> $GITHUB_ENV - name: Create Dependency-Count-Badge uses: schneegans/dynamic-badges-action@v1.0.0 with: @@ -24,5 +24,5 @@ jobs: gistID: a2128afe12bf05d85a0d68346236a4f5 filename: sailfish-dep-counts.json label: Dependencies - message: ${{ env.CODE_LINES }} + message: ${{ env.dep_counts }} color: orange From 6f3a9b128637ca2e4ccc52a5bb25f5cd9301fb28 Mon Sep 17 00:00:00 2001 From: Kogia-sima Date: Sat, 2 Jan 2021 02:15:49 +0900 Subject: [PATCH 5/5] ci: Finalize Badges action --- .github/workflows/badge.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/badge.yml b/.github/workflows/badge.yml index c54d84c..2aad3c2 100644 --- a/.github/workflows/badge.yml +++ b/.github/workflows/badge.yml @@ -3,8 +3,6 @@ name: Badges on: push: branches: - # FIXME - - ci/dynamic-badge - master jobs: @@ -25,4 +23,4 @@ jobs: filename: sailfish-dep-counts.json label: Dependencies message: ${{ env.dep_counts }} - color: orange + color: blueviolet