blob: b7ca5833fd1355a62b059cfcb1699cd530451b44 (
about) (
plain)
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
|
# SPDX-License-Identifier: CC0-1.0
# Copyright (C) 2022 Wojtek Kosior <koszko@koszko.org>
#
# Available under the terms of Creative Commons Zero v1.0 Universal.
GUIX := guix
# Almost all commands in this Makefilo are run through `guix time-machine` with
# Guix revision fixed to the one from the commit below. This ensures that the
# same working environment is always used.
GUIX_COMMIT := a86979b41a49a8fcdaa887970ba594dbba701226
GUIX_TM = $(GUIX) time-machine --commit=$(GUIX_COMMIT) --
GUIX_DEVSHELL = $(GUIX_TM) shell -Df guix.scm --
GET_VER = $$(grep '^Version:' src/hydrilla_website.egg-info/PKG-INFO | \
cut -d' ' -f2)
RECORD_VER = VER="$(GET_VER)"
DETERMINISTIC_TAR = $(GUIX_TM) shell tar -- tar \
--mtime='1970-01-01 00:00Z' \
--sort=name \
--owner=0 --group=0 --numeric-owner \
--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime
DETERMINE_USER_SHELL_TO_USE = \
case "$$SHELL" in \
?*) \
SHELL_TO_USE="$$SHELL";; \
*) \
SHELL_TO_USE="/bin/sh";; \
esac
wheel:
$(GUIX_DEVSHELL) python3 -m build
# Make a source tarball and repack in a deterministic way so that its
# reproducible.
dist src/hydrilla_website/_version.py:
$(GUIX_DEVSHELL) python3 -m build -s
$(RECORD_VER) && \
RELNAME=hydrilla_website-"$$VER" && \
DISTFILE=dist/"$$RELNAME".tar.gz && \
$(MAKE) clean-source-tarball-repack && \
mkdir source-tarball-repack/ && \
tar -C source-tarball-repack/ -xf "$$DISTFILE" && \
$(DETERMINISTIC_TAR) -C source-tarball-repack/ \
-cf "$$DISTFILE" "$$RELNAME"
@printf "Generated source tarball in:\n"
@printf "./dist/hydrilla_website-$(GET_VER).tar.gz\n"
# If using bash, modify the prompt to indicate the environment is active.
shell:
$(DETERMINE_USER_SHELL_TO_USE); \
case "$$SHELL_TO_USE" in \
*bash*) \
HYDRILLA_SHELL_NAME=hydrilla-website-dev \
$(GUIX_DEVSHELL) "$$SHELL_TO_USE" \
--rcfile ./bashrc || true;; \
*) \
$(GUIX_DEVSHELL) "$$SHELL_TO_USE" || true;; \
esac
catalogs:
$(GUIX_DEVSHELL) python3 setup.py compile_catalog
refresh-catalogs:
$(GUIX_DEVSHELL) sh -c \
"python3 setup.py extract_messages && python3 setup.py update_catalog && python3 setup.py compile_catalog"
run-website: src/hydrilla_website/_version.py catalogs
PYTHONPATH=./src $(GUIX_DEVSHELL) python3 -m hydrilla_website
reuse-lint:
$(GUIX_DEVSHELL) reuse lint
mypy-lint: src/hydrilla_website/_version.py
PYTHONPATH=./src/ $(GUIX_DEVSHELL) mypy -p hydrilla_website
clean-source-tarball-repack:
rm -rf source-tarball-repack/
clean: clean-source-tarball-repack
rm -rf build/ dist/ src/hydrilla_website.egg-info/ \
src/hydrilla_website/_version.py \
src/hydrilla_website/locales/messages.pot \
.mypy_cache/
find src/hydrilla_website/locales/ -name "messages.mo" -delete
rm -rf $$(find -name "__pycache__")
.PHONY: shell \
wheel dist catalogs \
run-website refresh-catalogs \
reuse-lint mypy-lint \
clean-source-tarball-repack clean
|