-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
69 lines (58 loc) · 1.72 KB
/
Makefile
File metadata and controls
69 lines (58 loc) · 1.72 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
BINDIR := $(HOME)/.local/bin/
# Directory of this Makefile
DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
LAUNCHAGENTS := $(HOME)/Library/LaunchAgents/
LOGDIR := $(HOME)/Library/Logs/fs-clip/
COMMAND_LABEL := dev.nils-silbernagel.fs-clip
PLIST := $(COMMAND_LABEL).plist
WATCHDIR ?= ""
.PHONY: build
build:
go build
.PHONY: symlink
symlink:
@echo "Symlinking fs-clip to $(BINDIR)"
@mkdir -p "$(BINDIR)"
ln -si "$(DIR)fs-clip" "$(BINDIR)fs-clip"
.PHONY: copy-exec
copy-exec:
@echo "Copying fs-clip to $(BINDIR)"
@mkdir -p "$(BINDIR)"
install -m 0755 "$(DIR)fs-clip" "$(BINDIR)fs-clip"
.PHONY: copy-plist
copy-plist:
@echo "Copying plist to $(LAUNCHAGENTS)"
@mkdir -p "$(LAUNCHAGENTS)" "$(LOGDIR)"
sed "s|{USER_HOME}|$(HOME)|g" "$(DIR)$(PLIST)" \
| sed "s|{WATCH_DIR}|$(WATCHDIR)|g" \
| sed "s|{BINARY_PATH}|$(BINDIR)fs-clip|g" \
> "$(LAUNCHAGENTS)$(PLIST)"
chmod 0644 "$(LAUNCHAGENTS)$(PLIST)"
# Unload existing launchd daemon
.PHONY: unload
unload:
@echo "Unloading launchd plist"
@if launchctl list | grep -q "$(COMMAND_LABEL)"; then \
echo "Unloading current instance of $(PLIST)"; \
launchctl unload "$(LAUNCHAGENTS)$(PLIST)"; \
fi
# Load the launchd daemon
.PHONY: load
load:
@echo "Loading launchd plist"
launchctl load "$(LAUNCHAGENTS)$(PLIST)"
# Reload the daemon (unload then load)
.PHONY: reload
reload: unload load
# Install target: symlink, reload
.PHONY: install
install: copy-exec copy-plist reload
@echo "Installation complete."
# Uninstall target: unload daemon and remove symlink
.PHONY: uninstall
uninstall: unload
@echo "Removing fs-clip from $(BINDIR)"
@rm -f "$(BINDIR)fs-clip"
@echo "Removing plist from $(LAUNCHAGENTS)"
@rm -f "$(LAUNCHAGENTS)$(PLIST)"
@echo "Uninstallation complete."