-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
36 lines (26 loc) · 863 Bytes
/
Makefile
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
NAME = gikkon
CON_NAME = config.toml
SRC_PATH = src
SYS_PATH = /usr/bin
CON_PATH = $${HOME}/.config/$(NAME)
TGT_PATH = target
all: update build install clean
update:
poetry update --only main
poetry export --without-hashes > requirements.txt
build:
$(eval tmp_dir := $(shell mktemp -d --suffix="_gikkon"))
cp $(SRC_PATH)/*.py $(tmp_dir)
python -m pip install --upgrade -r requirements.txt --target $(tmp_dir)
mkdir -p $(TGT_PATH)
python -m zipapp -o $(NAME) -p "/usr/bin/env python" $(tmp_dir)
mv $(NAME) $(TGT_PATH)
chmod +x $(TGT_PATH)/$(NAME)
rm -r $(tmp_dir)
install:
mkdir -p $(CON_PATH)
test -f $(CON_PATH)/$(CON_NAME) || cp ./$(CON_NAME) $(CON_PATH)
install -Dm755 $(TGT_PATH)/$(NAME) $(DESTDIR)$(SYS_PATH)/$(NAME)
clean:
poetry env remove $(shell python --version | sed 's/^Python //' | sed 's/\.[0-9]\+//2')
rm requirements.txt