generated from nhcarrigan/template
feat: rework scripts to be platform/user agnostic
This commit is contained in:
@@ -1,4 +1,84 @@
|
||||
#! /usr/bin/bash
|
||||
|
||||
rm -r match
|
||||
cp -r ~/.config/espanso/match .
|
||||
# Color definitions
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
CYAN='\033[0;36m'
|
||||
MAGENTA='\033[0;35m'
|
||||
BOLD='\033[1m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Prompt for username
|
||||
echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
echo -e "${CYAN}${BOLD} Espanso Config Pull${NC}"
|
||||
echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
echo ""
|
||||
prompt_username="${YELLOW}Enter your system/account username: ${NC}"
|
||||
read -p "$(printf '%b' "$prompt_username")" username
|
||||
|
||||
# Prompt for platform
|
||||
echo ""
|
||||
echo -e "${CYAN}${BOLD}Select the platform for your Espanso config:${NC}"
|
||||
echo -e " ${GREEN}1)${NC} Linux: ${MAGENTA}/home/<user>/.config/espanso${NC}"
|
||||
echo -e " ${GREEN}2)${NC} WSL: ${MAGENTA}/mnt/c/Users/<user>/AppData/Roaming/espanso${NC}"
|
||||
echo -e " ${GREEN}3)${NC} Windows: ${MAGENTA}C:\\Users\\<user>\\AppData\\Roaming\\espanso${NC}"
|
||||
echo -e " ${GREEN}4)${NC} Mac: ${MAGENTA}/Users/<user>/Library/Application Support/espanso${NC}"
|
||||
echo -e " ${GREEN}5)${NC} Other (custom absolute path)"
|
||||
echo ""
|
||||
prompt_choice="${YELLOW}Enter your choice (1-5): ${NC}"
|
||||
read -p "$(printf '%b' "$prompt_choice")" choice
|
||||
|
||||
# Build the path based on selection
|
||||
case "$choice" in
|
||||
1)
|
||||
espanso_path="/home/$username/.config/espanso"
|
||||
;;
|
||||
2)
|
||||
espanso_path="/mnt/c/Users/$username/AppData/Roaming/espanso"
|
||||
;;
|
||||
3)
|
||||
espanso_path="/mnt/c/Users/$username/AppData/Roaming/espanso"
|
||||
;;
|
||||
4)
|
||||
espanso_path="/Users/$username/Library/Application Support/espanso"
|
||||
;;
|
||||
5)
|
||||
prompt_custom="${YELLOW}Enter the custom absolute path to espanso config: ${NC}"
|
||||
read -p "$(printf '%b' "$prompt_custom")" espanso_path
|
||||
;;
|
||||
*)
|
||||
echo -e "${RED}${BOLD}✗ Invalid choice. Exiting.${NC}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Verify the path exists
|
||||
if [ ! -d "$espanso_path" ]; then
|
||||
echo -e "${RED}${BOLD}✗ Error: Path '$espanso_path' does not exist!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify the match directory exists
|
||||
if [ ! -d "$espanso_path/match" ]; then
|
||||
echo -e "${RED}${BOLD}✗ Error: Match directory not found at '$espanso_path/match'!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}${BOLD}→ Pulling from: ${CYAN}$espanso_path/match${NC}"
|
||||
|
||||
# Create backup of local match directory if it exists
|
||||
if [ -d "match" ]; then
|
||||
backup_date=$(date +%Y-%m-%d-%H%M%S)
|
||||
backup_dir=".backup/${backup_date}-match"
|
||||
echo -e "${YELLOW}${BOLD}→ Backing up local match directory to: ${CYAN}$backup_dir${NC}"
|
||||
mkdir -p "$backup_dir"
|
||||
cp -r match "$backup_dir/"
|
||||
echo -e "${GREEN}${BOLD}✓ Backup created successfully${NC}"
|
||||
fi
|
||||
|
||||
rm -rf match
|
||||
cp -r "$espanso_path/match" .
|
||||
echo -e "${GREEN}${BOLD}✓ Done! Match directory pulled successfully.${NC}"
|
||||
Reference in New Issue
Block a user