diff --git a/Justfile b/Justfile index 0af9ced..5a25e86 100644 --- a/Justfile +++ b/Justfile @@ -33,5 +33,41 @@ run: docker-compose up -d db RUST_LOG=debug cargo run -p oxidetalis -- --config config.toml +# Generate the contributors list from the git log +# then add it to the CONTRIBUTORS file +contributors: + #! /bin/env bash + maintainers="- Awiteb \n- Amjad Alsharafi " + reviewers=`git log --pretty=format:"%b" | grep -i "Reviewed-by" | sed 's/Reviewed-by: /- /' | sort | uniq` + reporters=`git log --pretty=format:"%b" | grep -i "Reported-by" | sed 's/Reported-by: /- /' | sort | uniq` + suggesters=`git log --pretty=format:"%b" | grep -i "Suggested-by" | sed 's/Suggested-by: /- /' | sort | uniq` + helpers=`git log --pretty=format:"%b" | grep -i "Helped-by" | sed 's/Helped-by: /- /' | sort | uniq` + authors=`git log --pretty=format:"- %an <%ae>" | sort | uniq | grep -v "actions"` + co_authors=`git log --pretty=format:"%b" | grep -i "Co-authored-by" | sed 's/Co-authored-by: /- /' | sort | uniq` + contributors_count=`echo -e "${maintainers}\n${authors}\n${co_authors}\n${reviewers}\n${reporters}\n${suggesters}\n${helpers}" | grep -Ev '^$' | sort | uniq | wc -l` + footer="Oxidetalis Homeserver currently has ${contributors_count} contributors!\n\nInterested in becoming a contributor? Read the [CONTRIBUTING.md](CONTRIBUTING.md) file to get started." + + file="# Contributors\nA heartfelt thank you to all the contributors who have helped make Oxidetalis Homeserver better. Below is a list of the contributors who have played a crucial role in the development and improvement of the Oxidetalis Homeserver.\n\n## Maintainers\nMaintainers are responsible for overseeing the project, keeping it up to date, and ensuring it runs smoothly.\n\n${maintainers}" + if [ -n "$authors" ]; then + file="${file}\n\n## Code Authors\nCode authors have written the code for the project.\n\n${authors}" + fi + if [ -n "$co_authors" ]; then + file="${file}\n${co_authors}" + fi + if [ -n "$reviewers" ]; then + file="${file}\n\n## Reviewers\nCode reviewers have reviewed the code and provided feedback, suggestions, and improvements.\n\n${reviewers}" + fi + if [ -n "$reporters" ]; then + file="${file}\n\n## Bug Reporters\nBug reporters have identified and reported bugs in the project, helping to improve its quality.\n\n${reporters}" + fi + if [ -n "$suggesters" ]; then + file="${file}\n\n## Feature Suggesters\nFeature suggesters have proposed new features to enhance the project.\n\n${suggesters}" + fi + if [ -n "$helpers" ]; then + file="${file}\n\n## Helpers\nHelpers have contributed in various ways that do not involve writing code, such as providing feedback, suggestions, and improvements.\n\n${helpers}" + fi + file="${file}\n\n---\n${footer}" + echo -e "${file}" | fmt -sw 80 > "CONTRIBUTORS.md" + [private] alias r := run