-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
53 lines (46 loc) · 1.55 KB
/
Makefile
File metadata and controls
53 lines (46 loc) · 1.55 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
.PHONY: help deploy test backup restore clean sync
help:
@echo "JJ Config Management"
@echo ""
@echo "Commands:"
@echo " make deploy - Deploy config (via symlink)"
@echo " make test - Validate config syntax"
@echo " make backup - Create timestamped backup"
@echo " make restore - List available backups"
@echo " make clean - Remove symlinks"
@echo " make sync - Sync redundant backups"
deploy:
@echo "Deploying jjConfig..."
@if [ -d ~/.config/jj ] && [ ! -L ~/.config/jj ]; then \
echo "Backing up existing ~/.config/jj..."; \
mv ~/.config/jj ~/.config/jj.backup-$$(date +%Y%m%d-%H%M%S); \
fi
@rm -f ~/.config/jj
@ln -s $(PWD) ~/.config/jj
@echo "✓ Symlink created: ~/.config/jj -> $(PWD)"
@jj config list user
@echo "✓ Deployment successful"
test:
@echo "Testing configuration..."
@jj config list > /dev/null && echo "✓ Config syntax valid" || echo "✗ Config has errors"
@jj config list user
@echo "✓ Tests complete"
backup:
@TIMESTAMP=$$(date +%Y%m%d-%H%M%S); \
mkdir -p backups/manual/backup-$$TIMESTAMP; \
cp config.toml backups/manual/backup-$$TIMESTAMP/; \
echo "✓ Backup created: backups/manual/backup-$$TIMESTAMP"
restore:
@echo "Available backups:"
@ls -1d backups/v*/ 2>/dev/null || echo "No backups found"
clean:
@if [ -L ~/.config/jj ]; then \
rm ~/.config/jj; \
echo "✓ Symlink removed"; \
else \
echo "No symlink found"; \
fi
sync:
@rsync -a --delete backups/ .backups-redundant/
@date +%Y%m%d-%H%M%S > .backups-redundant/last-sync.timestamp
@echo "✓ Backups synced to .backups-redundant/"