-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
133 lines (119 loc) · 4.41 KB
/
Copy pathMakefile
File metadata and controls
133 lines (119 loc) · 4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Makefile for installing personal dotfiles and configurations
# Usage: make install
.PHONY: install uninstall backup help clean
# Default target
all: help
# Install all dotfiles to their proper locations
install: backup
@echo "Installing dotfiles..."
# Install shell configuration
@echo "Installing .zshrc..."
@cp dotfiles/.zshrc $(HOME)/.zshrc
# Install tmux configuration
@echo "Installing .tmux.conf..."
@cp dotfiles/.tmux.conf $(HOME)/.tmux.conf
# Install pip configuration
@echo "Installing pip.conf..."
@mkdir -p $(HOME)/.config/pip
@cp dotfiles/pip.conf $(HOME)/.config/pip/pip.conf
# Also create legacy pip config location for compatibility
@mkdir -p $(HOME)/.pip
@cp dotfiles/pip.conf $(HOME)/.pip/pip.conf
@echo ""
@echo "✅ Dotfiles installation completed!"
@echo ""
@echo "Next steps:"
@echo " • Restart your terminal or run: source ~/.zshrc"
@echo " • For tmux: restart tmux or run: tmux source-file ~/.tmux.conf"
@echo " • Pip will automatically use the new configuration"
@echo ""
# Create backup of existing dotfiles
backup:
@echo "Creating backup of existing dotfiles..."
@mkdir -p $(HOME)/.dotfiles-backup
@if [ -f $(HOME)/.zshrc ]; then \
cp $(HOME)/.zshrc $(HOME)/.dotfiles-backup/.zshrc.bak; \
echo "Backed up existing .zshrc"; \
fi
@if [ -f $(HOME)/.tmux.conf ]; then \
cp $(HOME)/.tmux.conf $(HOME)/.dotfiles-backup/.tmux.conf.bak; \
echo "Backed up existing .tmux.conf"; \
fi
@if [ -f $(HOME)/.config/pip/pip.conf ]; then \
cp $(HOME)/.config/pip/pip.conf $(HOME)/.dotfiles-backup/pip.conf.bak; \
echo "Backed up existing pip.conf"; \
fi
@if [ -f $(HOME)/.pip/pip.conf ]; then \
cp $(HOME)/.pip/pip.conf $(HOME)/.dotfiles-backup/pip-legacy.conf.bak; \
echo "Backed up existing legacy pip.conf"; \
fi
# Uninstall dotfiles and restore backups
uninstall:
@echo "Uninstalling dotfiles and restoring backups..."
@if [ -f $(HOME)/.dotfiles-backup/.zshrc.bak ]; then \
cp $(HOME)/.dotfiles-backup/.zshrc.bak $(HOME)/.zshrc; \
echo "Restored .zshrc from backup"; \
else \
rm -f $(HOME)/.zshrc; \
echo "Removed .zshrc (no backup found)"; \
fi
@if [ -f $(HOME)/.dotfiles-backup/.tmux.conf.bak ]; then \
cp $(HOME)/.dotfiles-backup/.tmux.conf.bak $(HOME)/.tmux.conf; \
echo "Restored .tmux.conf from backup"; \
else \
rm -f $(HOME)/.tmux.conf; \
echo "Removed .tmux.conf (no backup found)"; \
fi
@if [ -f $(HOME)/.dotfiles-backup/pip.conf.bak ]; then \
cp $(HOME)/.dotfiles-backup/pip.conf.bak $(HOME)/.config/pip/pip.conf; \
echo "Restored pip.conf from backup"; \
else \
rm -f $(HOME)/.config/pip/pip.conf; \
echo "Removed pip.conf (no backup found)"; \
fi
@if [ -f $(HOME)/.dotfiles-backup/pip-legacy.conf.bak ]; then \
cp $(HOME)/.dotfiles-backup/pip-legacy.conf.bak $(HOME)/.pip/pip.conf; \
echo "Restored legacy pip.conf from backup"; \
else \
rm -f $(HOME)/.pip/pip.conf; \
echo "Removed legacy pip.conf (no backup found)"; \
fi
@echo "✅ Uninstallation completed!"
# Install system-specific configurations
install-ubuntu-20.04:
@echo "Installing Ubuntu 20.04 specific configurations..."
@if [ -f dotfiles/ubuntu.20.04 ]; then \
echo "Ubuntu 20.04 configuration found. Please review dotfiles/ubuntu.20.04 and apply manually."; \
else \
echo "No Ubuntu 20.04 configuration found."; \
fi
install-ubuntu-22.04:
@echo "Installing Ubuntu 22.04 specific configurations..."
@if [ -f dotfiles/ubuntu.22.04 ]; then \
echo "Ubuntu 22.04 configuration found. Please review dotfiles/ubuntu.22.04 and apply manually."; \
else \
echo "No Ubuntu 22.04 configuration found."; \
fi
# Clean backup files
clean:
@echo "Cleaning backup files..."
@rm -rf $(HOME)/.dotfiles-backup
@echo "✅ Backup files cleaned!"
# Show help
help:
@echo "Personal Dotfiles Makefile"
@echo ""
@echo "Available targets:"
@echo " install Install all dotfiles to proper locations"
@echo " uninstall Remove dotfiles and restore backups"
@echo " backup Create backup of existing dotfiles"
@echo " install-ubuntu-20.04 Install Ubuntu 20.04 specific configs"
@echo " install-ubuntu-22.04 Install Ubuntu 22.04 specific configs"
@echo " clean Remove backup files"
@echo " help Show this help message"
@echo ""
@echo "Usage examples:"
@echo " make install # Install all dotfiles"
@echo " make uninstall # Uninstall and restore backups"
@echo " make clean # Clean backup files"
@echo ""