From d3b5426e676df9ebeb2c348c28ded6f06e8e8436 Mon Sep 17 00:00:00 2001 From: Eshan Roy <148610067+eshanized@users.noreply.github.com> Date: Fri, 5 Jul 2024 15:27:10 +0530 Subject: [PATCH] (script): + conventional commit --- push.sh | 70 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/push.sh b/push.sh index 60508a5..8d7689a 100755 --- a/push.sh +++ b/push.sh @@ -1,32 +1,52 @@ #!/bin/bash -# Author : Eshan Roy -# URI : https://eshanized.github.io +# Author : ESHAN ROY +# Author URI : https://eshanized.github.io -# NOTE: If you are on Snigdha OS, -# you can install commitizen-go with `sudo pacman -S commitizen-go` -# or `s commitizen-go`. Else you need to install `yay` or `yay-bin` -# to install commitizen. I have written this script only for *Arch Linux. +# NOTE : RUN AT YOUR OWN RISK! -# Function to check if Commitizen is installed -check_commitizen() { - if ! pacman -Qq commitizen-go &> /dev/null; then - echo "Commitizen is not installed. Please install it using 'yay -S commitizen-go'." >&2 - exit 1 - fi -} +# Define the conventional commit types with emojis +TYPES=("๐ŸŽ‰ feat" "๐Ÿž fix" "๐Ÿ“š docs" "๐Ÿ’… style" "๐Ÿ”จ refactor" "โšก๏ธ perf" "๐Ÿงช test" "๐Ÿ› ๏ธ build" "๐Ÿค– ci" "๐Ÿงน chore" "โช๏ธ revert") -# Function to stage, commit, and push changes -push_to_github() { - git add . - git cz - git push origin master -} +# Prompt the user to select a commit type +echo "Select a commit type:" +select type in "${TYPES[@]}"; do + break +done -# Main Function -main() { - check_commitizen - push_to_github -} +# Extract the commit type and emoji from the selection +type_emoji=${type} +type=${type_emoji#* } +emoji=${type_emoji% *} -main \ No newline at end of file +# Prompt the user to enter a scope (optional) +read -p "Enter a scope (optional): " scope + +# Prompt the user to enter a short description +read -p "Enter a short description: " desc + +# Prompt the user to enter a longer description (optional) +read -p "Enter a longer description (optional): " long_desc + +# Create the commit message +commit_msg="$emoji $type($scope): $desc" + +# If a longer description was provided, add it to the commit message +if [ -n "$long_desc" ]; then + commit_msg+=" + +$long_desc" +fi + +# Print the commit message to the console +echo "Commit message:" +echo "$commit_msg" + +# Stage all changes +git add . + +# Commit the changes with the conventional commit message +git commit -m "$commit_msg" + +# Push the changes to the remote repository +git push origin $(git rev-parse --abbrev-ref HEAD) \ No newline at end of file