From e0d6412e33fb39990f6e88fd909c71310c767bc1 Mon Sep 17 00:00:00 2001 From: Eshan Roy Date: Sun, 1 Dec 2024 21:17:03 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20chore(bump):=20upgrade=20script?= =?UTF-8?q?=202.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/check-commitizen.yml | 13 ------ .github/workflows/cz.yml | 0 config.sh | 60 +++++++++++++++++++------- 3 files changed, 44 insertions(+), 29 deletions(-) delete mode 100644 .github/workflows/check-commitizen.yml create mode 100644 .github/workflows/cz.yml diff --git a/.github/workflows/check-commitizen.yml b/.github/workflows/check-commitizen.yml deleted file mode 100644 index f5d699a5..00000000 --- a/.github/workflows/check-commitizen.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: 'Conventional commits check using commitizen' -description: 'Check if the commits are compliant with Conventional Commits specification' -runs: - using: 'docker' - image: 'Dockerfile' -branding: - icon: 'git-commit' - color: 'purple' -inputs: - commitizen_version: - description: 'Specify the version to be used by commitizen' - required: false - default: latest \ No newline at end of file diff --git a/.github/workflows/cz.yml b/.github/workflows/cz.yml new file mode 100644 index 00000000..e69de29b diff --git a/config.sh b/config.sh index 7b106fcb..61f9e332 100755 --- a/config.sh +++ b/config.sh @@ -1,20 +1,33 @@ #!/bin/bash # Author: Eshan Roy -# Author URI : https://eshanized.github.io +# Author URI: https://eshanized.github.io set -e +# Function to display usage instructions usage() { - echo "Usage: ${0##*/} [--email ] [--username ] [-h]" - echo " --email Set the GitHub user email" - echo " --username Set the GitHub username" - echo " -h Display the help message" + cat <] [--username ] [-h] + +Options: + --email Set the GitHub user email. + --username Set the GitHub username. + -h, --help Display this help message. + +Description: + This script configures your GitHub user.email and user.name settings globally. + If no arguments are provided, it will prompt for input interactively. + +Examples: + ${0##*/} --email user@example.com --username "Eshan Roy" +EOF exit 1 } +# Parse command-line arguments while [[ "$#" -gt 0 ]]; do - case "$1" in + case "$1" in --email) EMAIL="$2" shift 2 @@ -27,27 +40,42 @@ while [[ "$#" -gt 0 ]]; do usage ;; *) - echo "Unknown argument found: $1" + echo "Unknown argument: $1" usage ;; esac done -# We will ask prompt for email address if not entered by the user -if [ -z "$EMAIL" ]; then +# Prompt for email if not provided +if [[ -z "${EMAIL:-}" ]]; then read -p "Enter your GitHub Email: " EMAIL fi -# We will ask prompt for username if not entered by the user -if [ -z "$USERNAME" ]; then +# Prompt for username if not provided +if [[ -z "${USERNAME:-}" ]]; then read -p "Enter your GitHub Username: " USERNAME fi -# Setting up github config +# Validate email format +if ! [[ "$EMAIL" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then + echo "Error: Invalid email format: $EMAIL" + exit 1 +fi + +# Validate username (allowing alphanumerics, dashes, underscores, and dots) +if ! [[ "$USERNAME" =~ ^[a-zA-Z0-9._-]+$ ]]; then + echo "Error: Invalid username format: $USERNAME" + exit 1 +fi + +# Configure GitHub global settings git config --global user.email "$EMAIL" git config --global user.name "$USERNAME" -# Get a confirmation message on successful update! -echo "GitHub Configuration setup successfull!" -echo " User Email: $EMAIL" -echo " Username: $USERNAME" \ No newline at end of file +# Display success message +echo -e "\033[1;32mGitHub configuration setup successful!\033[0m" +echo " User Email: $EMAIL" +echo " Username: $USERNAME" +echo -e "\033[1;36mYou can verify this configuration using the following commands:\033[0m" +echo " git config --global user.email" +echo " git config --global user.name" \ No newline at end of file