feat(install): complete install.sh with uninstall and --system flag

Swadhin Biswas committed 7 months ago
f9e6fef
1 parent ddcc9e2
commit f9e6fef
1 file changed
+82 -0
Showing 1 changed file+82-0
▼install.sh
+82-0
198
198
success "Config created at $CONFIG_FILE"
199
199
else
200
200
success "Config already exists at $CONFIG_FILE"
201
+fi
202
+
203
+# ── Setup shell alias ───────────────────────────────────────────────────────
204
+setup_alias() {
205
+ local shell_rc="$1"
206
+ local shell_name="$2"
207
+
208
+ if [[ -f "$shell_rc" ]]; then
209
+ if ! grep -q "alias fetch=" "$shell_rc" 2>/dev/null; then
210
+ echo "" >> "$shell_rc"
211
+ echo "# FetchX — fast neofetch alternative" >> "$shell_rc"
212
+ echo "alias fetch='fetchx'" >> "$shell_rc"
213
+ echo "alias neofetch='fetchx'" >> "$shell_rc"
214
+ success "Added aliases to $shell_rc (fetch & neofetch → fetchx)"
215
+ else
216
+ success "Aliases already exist in $shell_rc"
217
+ fi
218
+ fi
219
+}
220
+
221
+if [[ "$SETUP_ALIAS" == true ]]; then
222
+ info "Setting up shell aliases..."
223
+
224
+ CURRENT_SHELL=$(basename "${SHELL:-/bin/bash}")
225
+
226
+ case "$CURRENT_SHELL" in
227
+ zsh) setup_alias "$HOME/.zshrc" "zsh" ;;
228
+ bash) setup_alias "$HOME/.bashrc" "bash" ;;
229
+ fish)
230
+ FISH_CONFIG="$HOME/.config/fish/config.fish"
231
+ if [[ -f "$FISH_CONFIG" ]] || [[ -d "$HOME/.config/fish" ]]; then
232
+ mkdir -p "$HOME/.config/fish"
233
+ if ! grep -q "alias fetch=" "$FISH_CONFIG" 2>/dev/null; then
234
+ echo "" >> "$FISH_CONFIG"
235
+ echo "# FetchX — fast neofetch alternative" >> "$FISH_CONFIG"
236
+ echo "alias fetch 'fetchx'" >> "$FISH_CONFIG"
237
+ echo "alias neofetch 'fetchx'" >> "$FISH_CONFIG"
238
+ success "Added aliases to $FISH_CONFIG"
239
+ else
240
+ success "Aliases already exist in $FISH_CONFIG"
241
+ fi
242
+ fi
243
+ ;;
244
+ *)
245
+ warn "Unknown shell ($CURRENT_SHELL). Add manually:"
246
+ echo " alias fetch='fetchx'"
247
+ echo " alias neofetch='fetchx'"
248
+ ;;
249
+ esac
250
+fi
251
+
252
+# ── Check PATH ───────────────────────────────────────────────────────────────
253
+if ! echo "$PATH" | tr ':' '\n' | grep -q "^$BINDIR$"; then
254
+ warn "$BINDIR is not in your PATH!"
255
+ echo ""
256
+ echo " Add this to your shell config:"
257
+ echo ""
258
+ echo -e " ${BOLD}# For bash (~/.bashrc) or zsh (~/.zshrc):${RESET}"
259
+ echo " export PATH=\"$BINDIR:\$PATH\""
260
+ echo ""
261
+ echo -e " ${BOLD}# For fish (~/.config/fish/config.fish):${RESET}"
262
+ echo " fish_add_path $BINDIR"
263
+ echo ""
264
+fi
265
+
266
+# ── Cleanup ──────────────────────────────────────────────────────────────────
267
+if [[ "$CLONE_DIR" != "." ]] && [[ -d "$TMPDIR" ]]; then
268
+ rm -rf "$TMPDIR"
269
+fi
270
+
271
+# ── Done ─────────────────────────────────────────────────────────────────────
272
+echo ""
273
+echo -e "${GREEN}${BOLD}════════════════════════════════════════════${RESET}"
274
+echo -e "${GREEN}${BOLD} ⚡ FetchX installed successfully!${RESET}"
275
+echo -e "${GREEN}${BOLD}════════════════════════════════════════════${RESET}"
276
+echo ""
277
+echo -e " Run: ${BOLD}fetchx${RESET}"
278
+echo -e " Config: ${BOLD}$CONFIG_FILE${RESET}"
279
+echo -e " Help: ${BOLD}fetchx --help${RESET}"
280
+echo ""
281
+echo -e " ${CYAN}Tip: Restart your shell or run 'source ~/.${CURRENT_SHELL}rc' to use aliases${RESET}"
282
+echo ""
201
283