diff --git a/.badgetizr.yml b/.badgetizr.yml
index e038181..34337f8 100644
--- a/.badgetizr.yml
+++ b/.badgetizr.yml
@@ -4,8 +4,6 @@ badge_ci:
color: "purple"
label: "Bitrise"
logo: "bitrise"
- build_number: "${BADGETIZR_BUILD_NUMBER}"
- build_url: "${BADGETIZR_BUILD_URL}"
badge_ticket:
enabled: true
@@ -21,7 +19,6 @@ badge_base_branch:
settings:
color: "orange"
label: "Base Branch"
- destination_pr_branch: "${BADGETIZR_PR_DESTINATION_BRANCH}"
base_branch: "develop"
badge_wip:
diff --git a/.badgetizr.yml.example b/.badgetizr.yml.example
index e038181..34337f8 100644
--- a/.badgetizr.yml.example
+++ b/.badgetizr.yml.example
@@ -4,8 +4,6 @@ badge_ci:
color: "purple"
label: "Bitrise"
logo: "bitrise"
- build_number: "${BADGETIZR_BUILD_NUMBER}"
- build_url: "${BADGETIZR_BUILD_URL}"
badge_ticket:
enabled: true
@@ -21,7 +19,6 @@ badge_base_branch:
settings:
color: "orange"
label: "Base Branch"
- destination_pr_branch: "${BADGETIZR_PR_DESTINATION_BRANCH}"
base_branch: "develop"
badge_wip:
diff --git a/Formula/badgetizr.rb b/Formula/badgetizr.rb
index 9c45430..30593f8 100644
--- a/Formula/badgetizr.rb
+++ b/Formula/badgetizr.rb
@@ -2,9 +2,10 @@ class Badgetizr < Formula
desc "Badgetizr is a tool to allow custom badges automatically added and updated according the content of your pull request."
homepage "https://github.com/aiKrice/homebrew-badgetizr"
url "https://github.com/aiKrice/homebrew-badgetizr/archive/refs/tags/1.2.0.tar.gz"
- sha256 "024892da67071348af9b4bef84be76c121ab8b0779dd099ae0c8478f9aec59a3"
+ head "https://github.com/aiKrice/homebrew-badgetizr.git", branch: "master"
+ sha256 "77469507609086c18662cd51dc9c5864bb2f5ee48a39e8525fe97709c2095928"
license "MIT"
-
+
depends_on "yq"
depends_on "gh"
diff --git a/README.md b/README.md
index 46f03c9..e1b032a 100644
--- a/README.md
+++ b/README.md
@@ -13,14 +13,21 @@
---
+## What is Badgetizr ?
+Badgetizr is a tool that will add badges to your pull requests to increase your team's productivity. It is fully customizable and you can add (almost) as many badges as you want. With Badgtizr on your CI, you will be able to save time by:
+- Stop adding a link to your ticket in the description of the PR if you add the id of it in the title of the PR.
+- Reminding that some tasks are still missing to do in the PR.
+- Stop adding a visual indicator if your PR is a WIP.
+- Having a badge to know the status of the CI pipeline without having to click on it, scrolling down to the bottom of the page _(coming soon)_.
+
## To read before going further: I need your ⭐ !
-_📣 I would like to put this tool available with Homebrew and Apt-Get. To succeed, I need a maximum of star on this repository (according to the submission of Homebrew, min = 40stars). By using Homebrew or apt-get, I will be able to simplify the installation process by skipping the configure step below 🚀. Thank you for your help!_
+_📣 I would like to put this tool available with Homebrew and Apt-Get. To succeed, I need a maximum of star on this repository (according to the submission of Homebrew, min = 75stars). By using Homebrew or apt-get, I will be able to simplify the installation process by skipping the configure step below 🚀. Thank you for your help!_
## Roadmap
- [x] Add option to use a custom configuration file
- [ ] Make the badge_ci badge dynamic (success, failure, pending)
- [ ] Add a beautiful icon for this repository
-- [ ] Improve the Readme.md file
+- [x] Improve the Readme.md file
- [x] Add the tools to Homebrew tap
- [ ] Add the tool to Homebrew
- [ ] Add the tool to Apt-Get
@@ -30,9 +37,8 @@ _📣 I would like to put this tool available with Homebrew and Apt-Get. To succ
To see how to contribute, please refer to the section [Contributing](#contributing).
-## I am 🇫🇷 and I love coffee ☕.
-I am fully engaged to make this tool the best tool ever to add badges to your pull requests and increase your productivity 🚀. The roadmap is huge and I will do my best to achieve all of this and achieve my goal to make this the best tool to add badges to your pull requests. If you want to support me, you can buy me a coffee, you will be mentioned in the README.md file as a backer ❤️.
-
+## I love coffee ☕.
+If your productivity has increased, my mission is done 🎉. This means I can go back to my coffee and enjoy it 🤤. If you want to support me, you can buy me a coffee, you will be mentioned in the README.md file as a backer ❤️. It will also motivate me to continue to work on this tool and improve it.
## Installation via Homebrew (MacOS)
@@ -47,15 +53,12 @@ $ brew tap aiKrice/badgetizr
$ brew install aiKrice/badgetizr/badgetizr
# edit the .badgetizr.yml file to your needs
$ export GITHUB_TOKEN="your_github_token"
-$ export BADGETIZR_BUILD_NUMBER="123" # the build number of your CI
-$ export BADGETIZR_BUILD_URL="https://your-shiny-ci.io/app/build/123" # the build url of your CI
-$ export BADGETIZR_PR_DESTINATION_BRANCH="develop" # the destination branch of your PR from the CI.
```
## Installation via Apt-Get (Linux)
Coming soon...
-## Installation manually
+## Installation manually (for MacOS and Linux)
```bash
$ git clone https://github.com/aiKrice/badgetizr.git --branch master
$ cd badgetizr
@@ -65,46 +68,61 @@ In the rest of the documentation, I will consider that you have installed the to
## Usage
```bash
-$ badgetizr
+$ badgetizr #[options]
+```
+To see the different options available, you can use the `--help` option:
+```bash
+$ badgetizr --help
```
+## Configuration
By default, the configuration file used is `.badgetizr.yml`. You can also specify a configuration file to use by using the `-c` option.
```bash
$ badgetizer -c my_config.yml
```
-
-## Configuration
You can look to the `.badgetizr.yml.example` file at the root of the repository to see the different configuration options available.
-All icons are available at [simpleicons.org](https://simpleicons.org/).
+If you want to use an icon for your badge, you can use the `icon` option and specify the icon name (badge ci only). All icons are available at [simpleicons.org](https://simpleicons.org/).
## Badges
-### Badge Ticket
-`Disabled` by default.
+### Badge Ticket [![Static Badge](https://img.shields.io/badge/JIRA-GH--1234-blue?logo=jirasoftware&color=blue&labelColor=grey)](https://yourproject.atlassian.net/browse/badge)
+#### Status
+ `Disabled` by default.
+
+#### Description
The badge ticket is a badge that will be displayed on your pull request if you have a Jira ticket or a Youtrack ticket in your pull request title or overall, something you would like to extract from the pull request title.
To do so, you have to define a pattern that will be used to extract the data (ie: ticket id). This pattern will be used with the `sed` command with the `-n -E` options and the `p` flag and will extract the first occurrence of the pattern found in the string.
-For example, consider the following pull request title: `[ABC-123] My Pull Request Title`.
-If you set the pattern to `.*\(([^)]+)\).*`, the ticket id `ABC-123` will be extracted from the pull request title.
-You can also use the url option to define the url of the badge by letting `%s` as a placeholder for the ticket id. `url: "https://yourproject.atlassian.net/browse/%s"` will be `https://yourproject.atlassian.net/browse/ABC-123`.
-You don't need to escape the `-` and ` ` characters, they will be automatically escaped.
+#### Configuration:
+- `color`: The color of the badge (default: `blue`).
+- `label`: The label of the badge (default: `JIRA`).
+- `logo`: The logo of the badge (default: `jirasoftware`).
+- `sed_pattern`: The pattern to use to extract the ticket id from the pull request title (default: `.*\(([^)]+)\).*`, will match something like `feat(ABC-123): My Pull Request Title` -> `ABC-123`).
+- `url`: The url of the badge (default: `https://yourproject.atlassian.net/browse/%s`, will be `https://yourproject.atlassian.net/browse/ABC-123`). You don't need to escape the `-` and ` ` characters, they will be automatically escaped.
+
+### Badge Wip ![Static Badge](https://img.shields.io/badge/WIP-yellow?logo=vlcmediaplayer&logoColor=white)
-### Badge Wip
+#### Status
`Enabled` by default.
+#### Description
The badge wip is a badge that will be displayed on your pull request if the pull request title contains the word `WIP` whatever the case.
-### Badge Dynamic
+### Badge Dynamic ![Static Badge](https://img.shields.io/badge/Task_2-Done-grey?label=Task%202&labelColor=grey&color=darkgreen)
+#### Status
`Disabled` by default.
+#### Description
The badge dynamic is a badge that will be displayed on your pull request if the pull request body contains a pattern. You can define multiple patterns and each pattern will be displayed with a badge.
-### Badge Base Branch
-`Enabled` by default.
-
-The badge base branch is a badge that will be displayed on your pull request to indicate the target branch of the pull request. The default value is `develop`.
+#### Configuration:
+- `color`: The color of the badge (default: `grey`).
+- `label`: The label of the badge (default: `Task 2`).
+- `value`: The value of the badge (default: `Done`).
+- `labelColor`: The color of the label (default: `grey`).
+- `color`: The color of the badge (default: `darkgreen`).
example:
```yaml
@@ -113,8 +131,7 @@ example:
value: "Not done"
color: "orange"
```
-will display:
-![Static Badge](https://img.shields.io/badge/Task_1-Not_done-orange) if the checkbox is not checked.
+will display: ![Static Badge](https://img.shields.io/badge/Task_1-Not_done-orange) if the checkbox is not checked.
In this case you can also use this to display a badge if the checkbox is checked.
example:
@@ -125,35 +142,47 @@ example:
color: "green"
```
-will display:
-![Static Badge](https://img.shields.io/badge/Task_1-Done-green) if the checkbox is checked.
+will display: ![Static Badge](https://img.shields.io/badge/Task_1-Done-green) if the checkbox is checked.
You don't need to escape the `-` and ` ` characters, they will be automatically escaped.
-⚠️ Beware currently the regex has limitations, it is not using sed regex but only bash regex by checking if the pattern is found in the string (like a `contains`). An opened issue has been created and you are welcome to contribute to fix this ❤️.
+⚠️ Beware currently the regex has limitations, it is not using sed regex but only bash regex by checking if the pattern is found in the string (like a `contains`). An [opened issue](https://github.com/aiKrice/homebrew-badgetizr/issues/5) has been created and you are welcome to contribute to fix this ❤️.
-### Badge CI
-`Disabled` by default.
+### Badge Base Branch ![Static Badge](https://img.shields.io/badge/Base_Branch-master-orange?labelColor=grey&color=red)
-The badge ci is a badge that will be displayed on your pull request to indicate the status of the CI pipeline, the build number and the build url. Currently the status is not dynamic but it will be in a short future.
+#### Status
+`Enabled` by default.
-You must define the build number and the build url in your environment variables such as
-```shell
-export BADGETIZR_BUILD_NUMBER="123"
-export BADGETIZR_BUILD_URL="https://random.url%s"
-```
+#### Description
+The badge base branch is a badge that will be displayed on your pull request to indicate the target branch of the pull request. The default value is `develop`.
-## Contributing
+#### CLI Parameters
+- `--pr-destination-branch`: The base branch to use to compare the pull request to.
+
+### Badge CI [![Static Badge](https://img.shields.io/badge/My_CI-Build_number-purple?logo=bitrise&logoColor=white&labelColor=purple&color=green)](https://www.google.com)
+#### Status
+ `Disabled` by default.
+
+#### Description
+The `badge ci` is a badge that will be displayed on your pull request to indicate the status of the CI pipeline, the build number and the build url. Currently the status is **static** but it will be **dynamic** in a short future.
+#### CLI Parameters:
+- `--pr-build-number`: The build number of the CI pipeline.
+- `--pr-build-url`: The build url of the CI pipeline.
+
+#### Configuration:
+- `color`: The color of the badge (default: `purple`).
+- `label`: The label of the badge (default: `Bitrise`).
+- `logo`: The logo of the badge (default: `bitrise`).
+
+## Contributing
You are welcome to contribute to this project. The current rules to follow is that each time you are opening a pull request, you have to generate yourself the badge inside the pull request by running the script locally on your machine when your forked the repository.
example:
```bash
export GITHUB_TOKEN="your_github_token"
-export BADGETIZR_BUILD_NUMBER="123"
-export BADGETIZR_BUILD_URL="https://random.url%s"
-export BADGETIZR_PR_DESTINATION_BRANCH="develop"
-$ ./configure && ./badgetizer.sh
+$ ./configure #optional, just for dependencies
+$ ./badgetizer.sh
```
## Release (for maintainers)
diff --git a/badgetizr.sh b/badgetizr.sh
index c55443b..b2bdad1 100755
--- a/badgetizr.sh
+++ b/badgetizr.sh
@@ -9,51 +9,104 @@ Usage: $0 [options]
Options :
-c ,
--configuration=,
- --configuration Specify a configuration file. By default, the configuration file used is : .badgetizr.yml
+ --configuration (Optional) Specify a configuration file. By default, the configuration file used is : .badgetizr.yml
- --help Display this help.
+ --pr-id=,
+ --pr-id (Mandatory) Specify the pull request id.
+
+ --pr-destination-branch=,
+ --pr-destination-branch (Mandatory when branch badge is enabled) Specify the pull request destination branch.
+
+ --pr-build-number=,
+ --pr-build-number (Mandatory when CI badge is enabled) Specify the pull request build number.
+
+ --pr-build-url=,
+ --pr-build-url (Mandatory when CI badge is enabled) Specify the pull request build url.
+
+ --version, -v Display the version of Badgetizr.
+ -h, --help Display this help.
EOF
}
config_file=".badgetizr.yml"
+BADGETIZR_VERSION=$(git tag --sort=-creatordate | head -n 1)
while getopts "c:-:" opt; do
case $opt in
c)
config_file="$OPTARG"
;;
+ h)
+ show_help
+ exit 0
+ ;;
+ v)
+ echo "$BADGETIZR_VERSION"
+ exit 0
+ ;;
-)
case "${OPTARG}" in
configuration=*)
config_file="${OPTARG#*=}"
;;
-
configuration)
config_file="${!OPTIND}"; OPTIND=$(( OPTIND + 1 ))
;;
-
+ pr-build-number=*)
+ ci_badge_build_number="${OPTARG#*=}"
+ ;;
+ pr-build-number)
+ ci_badge_build_number="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ ;;
+ pr-build-url=*)
+ ci_badge_build_url="${OPTARG#*=}"
+ ;;
+ pr-build-url)
+ ci_badge_build_url="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ ;;
+ pr-destination-branch=*)
+ ci_badge_destination_branch="${OPTARG#*=}"
+ ;;
+ pr-destination-branch)
+ ci_badge_destination_branch="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ ;;
+ pr-id=*)
+ ci_badge_pull_request_id="${OPTARG#*=}"
+ ;;
+ pr-id)
+ ci_badge_pull_request_id="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ ;;
+ version)
+ echo "$BADGETIZR_VERSION"
+ exit 0
+ ;;
help)
show_help
exit 0
;;
-
*)
- echo "Option invalide --${OPTARG}" >&2
- echo "Utilisez --help pour plus d'informations." >&2
+ echo "Invalid option --${OPTARG}" >&2
+ echo "Use --help for more information." >&2
exit 1
;;
esac
;;
\?)
- echo "Option invalide : -$OPTARG" >&2
- echo "Utilisez --help pour plus d'informations." >&2
+ echo "Invalid option: -$OPTARG" >&2
+ echo "Use --help for more information." >&2
exit 1
;;
esac
done
+if [ -z "$ci_badge_pull_request_id" ]; then
+ echo "🔴 Error: --pr-id is mandatory." >&2
+ show_help
+ exit 1
+fi
+
if [ -f "$config_file" ]; then
wip_badge_enabled=$(yq e '.badge_wip.enabled // "true"' "$config_file")
wip_badge_label=$(yq e '.badge_wip.settings.label // "Work in Progress"' "$config_file")
@@ -95,8 +148,8 @@ else
dynamic_badge_enabled="false"
fi
-pull_request_body=$(gh pr view $BITRISE_PULL_REQUEST --json body -q '.body')
-pull_request_title=$(gh pr view $BITRISE_PULL_REQUEST --json title -q '.title')
+pull_request_body=$(gh pr view $ci_badge_pull_request_id --json body -q '.body')
+pull_request_title=$(gh pr view $ci_badge_pull_request_id --json title -q '.title')
# Extract current badges from the pull request body
pull_request_body=$(echo "$pull_request_body" | awk '// {flag=1; next} // {flag=0; next} !flag' | tr -d '\r')
@@ -117,19 +170,17 @@ fi
# CI Badge
if [ "$ci_badge_enabled" = "true" ]; then
- if [[ -z "$BADGETIZR_BUILD_NUMBER" ]]; then
- echo "🔴 BADGETIZR_BUILD_NUMBER is not defined: You have to export it in the environment."
+ if [ -z "$ci_badge_build_number" ]; then
+ echo "🔴 Error: --pr-build-number is mandatory." >&2
+ show_help
exit 1
fi
- if [[ -z "$BADGETIZR_BUILD_URL" ]]; then
- echo "🔴 BADGETIZR_BUILD_URL is not defined: You have to export it in the environment."
+
+ if [ -z "$ci_badge_build_url" ]; then
+ echo "🔴 Error: --pr-build-url is mandatory." >&2
+ show_help
exit 1
fi
- ci_badge_build_number=$BADGETIZR_BUILD_NUMBER
- ci_badge_build_url=$BADGETIZR_BUILD_URL
-
- #Evaluation of the env var defined in the yaml config file
- yq eval '.badge_ci.settings.build_number = env(BADGETIZR_BUILD_NUMBER) | .badge_ci.settings.build_url = env(BADGETIZR_BUILD_URL)' "$config_file" >/dev/null
ci_badge="[![Static Badge](https://img.shields.io/badge/$ci_badge_label-$ci_badge_build_number-purple?logo=$ci_badge_logo&logoColor=white&labelColor=$ci_badge_color&color=green)]($ci_badge_build_url)"
all_badges=$(echo $all_badges $ci_badge)
@@ -137,15 +188,15 @@ fi
# Target Branch Badge
if [ "$branch_badge_enabled" = "true" ]; then
- if [[ -z "$BADGETIZR_PR_DESTINATION_BRANCH" ]]; then
- echo "🔴 BADGETIZR_PR_DESTINATION_BRANCH is not defined: You have to export it in the environment."
+ if [ -z "$ci_badge_destination_branch" ]; then
+ echo "🔴 Error: --pr-destination-branch is mandatory when branch badge is enabled." >&2
+ show_help
exit 1
fi
- #Evaluation of the env var defined in the yaml config file
- yq eval '.badge_base_branch.settings.destination_pr_branch = env(BADGETIZR_PR_DESTINATION_BRANCH)' "$config_file" >/dev/null
+
branch_badge_label_for_badge=$(echo $branch_badge_label | sed -E 's/ /_/g; s/-/--/g')
- if [[ "$BADGETIZR_PR_DESTINATION_BRANCH" != "$branch_badge_base_branch" ]];then
- branch_badge="![Static Badge](https://img.shields.io/badge/$branch_badge_label_for_badge-$BADGETIZR_PR_DESTINATION_BRANCH-$branch_badge_color?labelColor=grey&color=$branch_badge_color)"
+ if [[ "$ci_badge_destination_branch" != "$branch_badge_base_branch" ]];then
+ branch_badge="![Static Badge](https://img.shields.io/badge/$branch_badge_label_for_badge-$ci_badge_destination_branch-$branch_badge_color?labelColor=grey&color=$branch_badge_color)"
all_badges=$(echo $all_badges $branch_badge)
fi
fi
@@ -170,13 +221,8 @@ if [ "$dynamic_badge_enabled" = "true" ]; then
value=$(yq ".badge_dynamic.settings.patterns[$i].value // \"default\"" "$config_file" | sed -E 's/ /_/g; s/-/--/g')
color=$(yq ".badge_dynamic.settings.patterns[$i].color // \"orange\"" "$config_file")
- echo "🟢 Value $label"
- echo "🟢 Label $override_label"
- echo "🟢 Default label $default_label"
if [[ "$pull_request_body" == *"$pattern"* ]];then
- echo "🟢 Pattern $pattern found in the pull request body for badge $label at index $i"
dynamic_badge="![Static Badge](https://img.shields.io/badge/$default_label-$value-grey?label=$override_label&labelColor=grey&color=${color})"
- #dynamic_badge="![Static Badge](https://img.shields.io/badge/${label}-${value}-${color})"
all_badges=$(echo $all_badges $dynamic_badge)
fi
done
@@ -188,4 +234,4 @@ all_badges=$(printf " \n%s\n" "$all_ba
# Build new body
new_pull_request_body=$(printf "%s\n%s" "$all_badges" "$pull_request_body")
# Send the new body
-gh pr edit $BITRISE_PULL_REQUEST -b "$new_pull_request_body"
+gh pr edit $ci_badge_pull_request_id -b "$new_pull_request_body"
diff --git a/deploy-homebrew.sh b/deploy-homebrew.sh
index 7828295..77f638e 100755
--- a/deploy-homebrew.sh
+++ b/deploy-homebrew.sh
@@ -8,27 +8,50 @@ REPOSITORY="aiKrice/homebrew-badgetizr"
FORMULA_PATH="Formula/badgetizr.rb"
VERSION="$1"
+red='\033[1;31m'
+green='\033[1;32m'
+yellow='\033[1;33m'
+blue='\033[1;34m'
+purple='\033[1;35m'
+cyan='\033[1;36m'
+white='\033[1;37m'
+orange='\033[38;5;208m'
+reset='\033[0m'
+
+function fail_if_error() {
+ if [ $? -ne 0 ]; then
+ echo -e ""
+ echo -e "${red}🔴 Error${reset}: $1"
+ exit 1
+ fi
+}
+
if [ -z "$VERSION" ]; then
echo "❌ Please provide a version (example: ./release.sh 1.1.3). Please respect the semantic versioning notation."
exit 1
fi
# Step 1: Create the release
+echo "🟡 [Step 1/5] Switching to master..."
git switch master
git pull
git merge develop --no-ff --no-edit --no-verify
-echo "🟢 Develop merged into master"
+fail_if_error "Failed to merge develop into master"
+echo "🟢 [Step 1/5] Master is updated."
git push --no-verify
-echo "🟡 Creating the release tag"
+echo "🟡 [Step 2/5] Creating the release tag..."
git tag -a "$VERSION" -m "Release $VERSION"
git push origin "$VERSION" --no-verify
gh release create $VERSION --generate-notes --verify-tag
-echo "🟢 Github release created"
+echo "🟢 [Step 2/5] Github release created"
# Step 2: Download the archive and calculate SHA256 for Homebrew
+echo "🟡 [Step 3/5] Downloading the archive..."
ARCHIVE_URL="https://github.com/$REPOSITORY/archive/refs/tags/$VERSION.tar.gz"
-curl -L -o "badgetizr-$VERSION.tar.gz" "$ARCHIVE_URL"
+curl -L -o "badgetizr-$VERSION.tar.gz" "$ARCHIVE_URL" > /dev/null
+fail_if_error "Failed to download the archive"
+echo "🟢 [Step 3/5] Archive downloaded."
SHA256=$(shasum -a 256 "badgetizr-$VERSION.tar.gz" | awk '{print $1}')
echo "🟢 SHA256 generated: $SHA256"
@@ -39,15 +62,23 @@ sed -i "" -E \
"$FORMULA_PATH"
# Step 4: Commit and push
+echo "🟡 [Step 4/5] Committing the formula..."
git add "$FORMULA_PATH"
git commit -m "Update formula for version $VERSION"
+fail_if_error "Failed to commit the formula"
git push --no-verify
-
+fail_if_error "Failed to push the formula"
+echo "🟢 [Step 4/5] Formula pushed."
# Step 5: Backmerge to develop
+echo "🟡 [Step 5/5] Switching to develop..."
git switch develop
+fail_if_error "Failed to switch to develop. Please check if you have to stash some changes."
git pull
+fail_if_error "Failed to pull develop"
git merge master --no-ff --no-edit --no-verify
+fail_if_error "Failed to backmerge to develop"
git push --no-verify
-echo "🟢 Backmerged to develop"
+echo "🟢 [Step 5/5] Develop is updated."
+rm badgetizr-$VERSION.tar.gz
echo "🚀 Done"