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,3 +198,85 @@ if [[ ! -f "$CONFIG_FILE" ]]; then | ||
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 | |