diff --git a/.github/workflows/update_readme.yml b/.github/workflows/update_readme.yml new file mode 100644 index 0000000..3b5b6a4 --- /dev/null +++ b/.github/workflows/update_readme.yml @@ -0,0 +1,36 @@ +name: Update README + +on: + push: + branches: + - main + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Update README + run: python update_list.py + + - id: last-commit-message + run: echo "msg=$(git log -1 --pretty=%s)" >> $GITHUB_OUTPUT + - id: get-author-name + run: echo "msg=$(git log -1 --pretty=%an)" >> $GITHUB_OUTPUT + - id: get-author-email + run: echo "msg=$(git log -1 --pretty=%aE)" >> $GITHUB_OUTPUT + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_user_name: ${{ steps.get-author-name.outputs.msg }} + commit_user_email: ${{ steps.get-author-email.outputs.msg }} + commit_author: ${{ steps.get-author-name.outputs.msg }} <${{ steps.get-author-email.outputs.msg }}> + commit_message: ${{ steps.last-commit-message.outputs.msg }} + commit_options: '--amend --no-edit' + push_options: '--force' + skip_fetch: true \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1d5de7a..71b1a9d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ Feel free to contribute by opening a pull request and adding a new language to o ## ⌨️ Naming -- Use spaces instead of hyphens or underscores (e.g. `Objective C.m` instead of `Objective-C.m`) +- Use spaces instead of hyphens or underscores (e.g. `Objective C` instead of `Objective-C`) ### 📂 Directories diff --git a/README.md b/README.md index d367c44..bdc319b 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,8 @@ Excerpt from [Wikipedia](https://en.wikipedia.org/wiki/Fibonacci_sequence): ## 📥 Contributing -We welcome contributions, to see our rules and guidelines on contributing please read [CONTRIBUTING.md](CONTRIBUTING.md) \ No newline at end of file +We welcome contributions, to see our rules and guidelines on contributing please read [CONTRIBUTING.md](CONTRIBUTING.md) + +# 🌐 Languages + + diff --git a/update_list.py b/update_list.py new file mode 100644 index 0000000..87408a1 --- /dev/null +++ b/update_list.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +"""Updates the list of languages in the README using GitHub Actions +""" + +import glob +import urllib.parse + +subsitutes = { '∕':'/', '\':'\\', '˸':':', '∗':'*', '?':'?', '"':'"', '﹤':'<', '﹥':'>', '❘':'|' } + +files = glob.glob("./src/*/*", recursive=True) +with open('README.md', 'r', encoding='utf-8') as f: + f_text = f.read() + md = f_text.split("")[0] + md += f"[{len(files)} total]\n" + + for file in files: + file = file.replace("\\", "/") + language = file.split("/")[-1] + for k in subsitutes.keys(): + language = language.replace(k, subsitutes[k]) + md += f"\n- [{language}]({urllib.parse.quote(file)})" + + md += '\n\n' + md += f_text.split("")[1] + +with open('README.md', 'w', encoding='utf-8') as f: + f.write(md) \ No newline at end of file