-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
104 lines (93 loc) · 2.83 KB
/
Makefile
File metadata and controls
104 lines (93 loc) · 2.83 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
# Makefile for git-ignore extension
SHELL := /bin/bash
PREFIX := $(HOME)/.local
BINDIR := $(PREFIX)/bin
BASH_COMPLETION_DIR := $(PREFIX)/share/bash-completion/completions
ZSH_COMPLETION_DIR := $(HOME)/.zsh/completions
# Default target
.PHONY: all
all: install
# Install the extension
.PHONY: install
install:
@echo "Installing git-ignore extension..."
@mkdir -p $(BINDIR)
@cp git-ignore $(BINDIR)/git-ignore
@chmod +x $(BINDIR)/git-ignore
@echo "✓ Installed git-ignore to $(BINDIR)"
@$(MAKE) install-completions
@echo "✓ Installation complete!"
@echo ""
@echo "Make sure $(BINDIR) is in your PATH:"
@echo " export PATH=\"\$$PATH:$(BINDIR)\""
# Install completion scripts
.PHONY: install-completions
install-completions: install-bash-completion install-zsh-completion
# Install bash completion
.PHONY: install-bash-completion
install-bash-completion:
@echo "Installing bash completion..."
@mkdir -p $(BASH_COMPLETION_DIR)
@cp git-ignore-completion.bash $(BASH_COMPLETION_DIR)/git-ignore
@echo "✓ Installed bash completion"
# Install zsh completion
.PHONY: install-zsh-completion
install-zsh-completion:
@echo "Installing zsh completion..."
@mkdir -p $(ZSH_COMPLETION_DIR)
@cp git-ignore-completion.zsh $(ZSH_COMPLETION_DIR)/_git-ignore
@echo "✓ Installed zsh completion"
# Uninstall the extension
.PHONY: uninstall
uninstall:
@echo "Uninstalling git-ignore extension..."
@rm -f $(BINDIR)/git-ignore
@rm -f $(BASH_COMPLETION_DIR)/git-ignore
@rm -f $(ZSH_COMPLETION_DIR)/_git-ignore
@echo "✓ Uninstalled git-ignore"
# Run tests
.PHONY: test
test:
@echo "Running tests..."
@bash test.sh
# Check installation
.PHONY: check
check:
@echo "Checking installation..."
@if command -v git-ignore >/dev/null 2>&1; then \
echo "✓ git-ignore is installed"; \
else \
echo "✗ git-ignore not found in PATH"; \
fi
@if [ -f $(BASH_COMPLETION_DIR)/git-ignore ]; then \
echo "✓ Bash completion installed"; \
else \
echo "✗ Bash completion not installed"; \
fi
@if [ -f $(ZSH_COMPLETION_DIR)/_git-ignore ]; then \
echo "✓ Zsh completion installed"; \
else \
echo "✗ Zsh completion not installed"; \
fi
# Clean temporary files
.PHONY: clean
clean:
@echo "Cleaning temporary files..."
@rm -f *~ *.swp
# Show help
.PHONY: help
help:
@echo "git-ignore Extension Makefile"
@echo ""
@echo "Available targets:"
@echo " make install - Install git-ignore and completions (default)"
@echo " make uninstall - Remove git-ignore and completions"
@echo " make test - Run functionality tests"
@echo " make check - Check installation status"
@echo " make clean - Remove temporary files"
@echo " make help - Show this help message"
@echo ""
@echo "Installation directories:"
@echo " Binary: $(BINDIR)"
@echo " Bash completion: $(BASH_COMPLETION_DIR)"
@echo " Zsh completion: $(ZSH_COMPLETION_DIR)"