feat(install): add Rust auto-installation to install.sh

Swadhin Biswas committed 7 months ago
3d51464
1 parent 193d13b
commit 3d51464
1 file changed
+70 -0
Showing 1 changed file+70-0
▼install.sh
+70-0
48
48
echo "FetchX Installer"
49
49
echo ""
50
50
echo "Usage: ./install.sh [OPTIONS]"
51
+ echo ""
52
+ echo "Options:"
53
+ echo " --prefix=PATH Installation prefix (default: ~/.local)"
54
+ echo " --system Install system-wide to /usr/local (requires sudo)"
55
+ echo " --uninstall Remove FetchX"
56
+ echo " --no-alias Skip shell alias setup"
57
+ echo " --help Show this help"
58
+ exit 0
59
+ ;;
60
+ *)
61
+ echo -e "${RED}Unknown option: $arg${RESET}"
62
+ exit 1
63
+ ;;
64
+ esac
65
+done
66
+
67
+BINDIR="$PREFIX/bin"
68
+
69
+# ── Helper functions ─────────────────────────────────────────────────────────
70
+info() { echo -e "${BLUE}::${RESET} $*"; }
71
+success() { echo -e "${GREEN}✓${RESET} $*"; }
72
+warn() { echo -e "${YELLOW}!${RESET} $*"; }
73
+error() { echo -e "${RED}✗${RESET} $*"; exit 1; }
74
+
75
+command_exists() { command -v "$1" &>/dev/null; }
76
+
77
+maybe_sudo() {
78
+ if [[ "$SYSTEM_INSTALL" == true ]]; then
79
+ sudo "$@"
80
+ else
81
+ "$@"
82
+ fi
83
+}
84
+
85
+# ── Uninstall ────────────────────────────────────────────────────────────────
86
+if [[ "$UNINSTALL" == true ]]; then
87
+ info "Uninstalling FetchX..."
88
+
89
+ if [[ -f "$BINDIR/$BINARY_NAME" ]]; then
90
+ maybe_sudo rm -f "$BINDIR/$BINARY_NAME"
91
+ success "Removed $BINDIR/$BINARY_NAME"
92
+ else
93
+ warn "Binary not found at $BINDIR/$BINARY_NAME"
94
+ fi
95
+
96
+ # Remove config (ask first)
97
+ if [[ -d "$HOME/.config/fetchx" ]]; then
98
+ read -rp "Remove config directory (~/.config/fetchx)? [y/N] " answer
99
+ if [[ "$answer" =~ ^[Yy]$ ]]; then
100
+ rm -rf "$HOME/.config/fetchx"
101
+ success "Removed ~/.config/fetchx"
102
+ fi
103
+ fi
104
+
105
+ # Remove cache
106
+ if [[ -d "$HOME/.cache/fetchx" ]]; then
107
+ rm -rf "$HOME/.cache/fetchx"
108
+ success "Removed ~/.cache/fetchx"
109
+ fi
110
+
111
+ success "FetchX uninstalled!"
112
+ exit 0
113
+fi
114
+
115
+# ── Banner ───────────────────────────────────────────────────────────────────
116
+echo -e "${CYAN}${BOLD}"
117
+echo " ╔═══════════════════════════════════════╗"
118
+echo " ║ ⚡ FetchX Installer ⚡ ║"
119
+echo " ║ Fast system info tool written in Rust ║"
120
+echo " ╚═══════════════════════════════════════╝"
51
121