diff --git a/push.sh b/push.sh index 0bb3efbb..cf80693f 100755 --- a/push.sh +++ b/push.sh @@ -6,77 +6,72 @@ # Define the conventional commit types with new emojis TYPES=("๐Ÿš€ feat" "๐Ÿ› fix" "๐Ÿ“ docs" "โœจ style" "๐Ÿ›  refactor" "โšก๏ธ perf" "๐Ÿ”ฌ test" "๐Ÿ”ง build" "๐Ÿค– ci" "๐Ÿงน chore" "โช revert") -# Function to display an error and exit +# Function to display an error and exit and error_exit() { - echo -e "\033[1;31m[ERROR]\033[0m $1" # Prints the error message in red color - exit 1 # Exits the script with a non-zero status + echo -e "\033[1;31m[ERROR]\033[0m $1" + exit 1 } # Ensure the script is run in a Git repository git rev-parse --is-inside-work-tree > /dev/null 2>&1 || error_exit "This is not a Git repository." -# Get the current branch name using Git +# Get the current branch name branch=$(git rev-parse --abbrev-ref HEAD) -# Pull the latest changes from the remote repository to stay up-to-date +# Pull the latest changes from the remote repository echo "Pulling latest changes from remote branch '$branch'..." git pull origin "$branch" || error_exit "Failed to pull changes from the remote repository. Please resolve any conflicts manually." -# Check if there are any changes to commit (both staged and unstaged) -if git diff --quiet && git diff --cached --quiet; then - error_exit "No changes detected to commit." # If no changes, exit the script -fi - -# Prompt the user to select a commit type from the predefined list of types +# Prompt the user to select a commit type echo "Select a commit type:" select type in "${TYPES[@]}"; do - if [[ -n "$type" ]]; then # If a valid selection is made, break the loop + if [[ -n "$type" ]]; then break else - echo "Invalid selection. Please try again." # If invalid, prompt again + echo "Invalid selection. Please try again." fi done -# Extract the commit type (e.g., "feat") and emoji (e.g., "๐Ÿš€") from the selected type -type_emoji=${type} # The full emoji and type (e.g., "๐Ÿš€ feat") -type=${type_emoji#* } # Extract the commit type (e.g., "feat") by removing the emoji -emoji=${type_emoji% *} # Extract the emoji (e.g., "๐Ÿš€") by removing the type +# Extract the commit type and emoji from the selection +type_emoji=${type} +type=${type_emoji#* } +emoji=${type_emoji% *} -# Prompt the user to enter a short description for the commit +# Prompt the user to enter a short description read -p "Enter a short description: " desc -if [ -z "$desc" ]; then # If the description is empty, exit with an error +if [ -z "$desc" ]; then error_exit "A short description is required!" fi # Prompt the user to enter a longer description (optional) read -p "Enter a longer description (optional): " long_desc -# Create the commit message using the emoji, type, and description +# Create the commit message commit_msg="$emoji $type: $desc" -# If the user provided a longer description, append it to the commit message +# If a longer description was provided, add it to the commit message if [ -n "$long_desc" ]; then - commit_msg+="\n\n$long_desc" # Adds the longer description to the commit message + commit_msg+="\n\n$long_desc" fi -# Print the commit message to the console for review +# Print the commit message to the console echo -e "\nCommit message:" -echo -e "\033[1;36m$commit_msg\033[0m" # Prints the commit message in cyan color +echo -e "\033[1;36m$commit_msg\033[0m" -# Stage all changes for commit +# Stage all changes git add . -# Commit the changes with the constructed commit message +# Commit the changes with the conventional commit message if git commit -m "$commit_msg"; then - echo -e "\033[1;32mCommit successful!\033[0m" # If commit is successful, print success message in green + echo -e "\033[1;32mCommit successful!\033[0m" else - error_exit "Commit failed. Please check your changes and try again." # If commit fails, show error and exit + error_exit "Commit failed." fi # Push the changes to the remote repository echo "Pushing changes to remote branch '$branch'..." if git push origin "$branch"; then - echo -e "\033[1;32mChanges pushed to remote branch '$branch'.\033[0m" # If push is successful, print success message in green + echo -e "\033[1;32mChanges pushed to remote branch '$branch'.\033[0m" else - error_exit "Push failed. Please check your connection or branch permissions." # If push fails, show error and exit -fi + error_exit "Push failed. Please check your connection or branch permissions." +fi \ No newline at end of file diff --git a/snigdhaos-hyprland-config/snigdhaos-hyprland-config.install b/snigdhaos-hyprland-config/snigdhaos-hyprland-config.install new file mode 100644 index 00000000..28325037 --- /dev/null +++ b/snigdhaos-hyprland-config/snigdhaos-hyprland-config.install @@ -0,0 +1,54 @@ +# Font-icon directories +FONT_DIRS="/usr/share/fonts/TTF /usr/share/fonts/OTF /usr/share/fonts/misc" +ICON_DIR="/usr/share/icons/hicolor" +GLIB_SCHEMA_DIR="/usr/share/glib-2.0/schemas" + +# Utility function to check if required commands are available +check_command() { + if ! command -v "$1" &> /dev/null; then + echo "Error: $1 command not found. Please install it first." + exit 1 + fi +} + +# Font-related commands +update_fonts() { + check_command mkfontscale + check_command mkfontdir + check_command fc-cache + + # Update font-related files + echo "Updating fonts..." + mkfontscale "$FONT_DIRS" >/dev/null 2>&1 || { echo "Failed to run mkfontscale"; return 1; } + mkfontdir "$FONT_DIRS" >/dev/null 2>&1 || { echo "Failed to run mkfontdir"; return 1; } + fc-cache -s >/dev/null || { echo "Failed to update font cache"; return 1; } +} + +# GTK related commands +update_gtk() { + check_command glib-compile-schemas + check_command gtk-update-icon-cache + check_command dconf + + # Update GTK and icon cache + echo "Updating GTK and icon cache..." + glib-compile-schemas "$GLIB_SCHEMA_DIR" || { echo "Failed to compile schemas"; return 1; } + gtk-update-icon-cache -ftq "$ICON_DIR" || { echo "Failed to update icon cache"; return 1; } + /bin/sh -c 'dconf update' || { echo "Failed to update dconf"; return 1; } +} + +# Post installation +post_install() { + echo "Post installation steps..." + post_upgrade +} + +# Post upgrade +post_upgrade() { + echo "Post upgrade steps..." + update_fonts + update_gtk +} + +# Main entry point: Run post-install steps +post_install