1
0

Fix Makefile. Use Python 3 for scripts.

This commit is contained in:
2017-11-16 00:19:08 +00:00
parent 8c64fb6b3b
commit 32e50d8334
3 changed files with 34 additions and 27 deletions
+17 -10
View File
@@ -1,22 +1,29 @@
ALL_FOLDERS := ${shell find ./src/ -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0} SRC_DIR := src/
#ALL_FOLDERS := $(dir $(wildcard ./src/*/.)) ALL_FOLDERS := $(shell find $(SRC_DIR) -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0)
ALL_MODULES := $(sort $(subst $(SRC_DIR),,$(ALL_FOLDERS)))
#ALL_TARGETS = $(ALL_FOLDERS:./src/%=build/%.mkp)
ALL_TARGETS := ${shell bin/findtargets.py build/ $(ALL_FOLDERS)} ALL_TARGETS := ${shell bin/findtargets.py build/ $(ALL_FOLDERS)}
all: $(ALL_TARGETS) all: $(ALL_TARGETS)
$(ALL_TARGETS): $(ALL_FOLDERS)
@echo "Building $@ from $<"
bin/makemkp.py $< ./build/
# cleanup # cleanup
.PHONY: clean show_targets .PHONY: clean show_targets
clean: clean:
-rm ./build/*.mkp -rm ./build/*.mkp
# debug
show_targets: show_targets:
@echo $(ALL_FOLDERS)
@echo $(ALL_TARGETS) @echo $(ALL_TARGETS)
@echo $(ALL_MODULES)
# setup
define make-goal
${shell bin/findtargets.py build/ $(SRC_DIR)$1}: $(SRC_DIR)$1
echo "Building $$@"
bin/makemkp.py $$< ./build/
endef
$(foreach mod,$(ALL_MODULES),$(eval $(call make-goal,$(mod))))
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import configparser import configparser
+16 -16
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import configparser import configparser
@@ -45,7 +45,7 @@ cfg = configparser.ConfigParser()
cfg.read(src_dir + "/baseinfo.ini") cfg.read(src_dir + "/baseinfo.ini")
for key in cfg["info"]: for key in cfg["info"]:
info[key] = cfg["info"][key].encode("utf-8") info[key] = cfg["info"][key]
dst_file = os.path.normpath(dst_dir + "/" + "{}-{}.mkp".format(info["name"], info["version"])) dst_file = os.path.normpath(dst_dir + "/" + "{}-{}.mkp".format(info["name"], info["version"]))
@@ -57,17 +57,17 @@ tar = tarfile.open(name=dst_file, mode="w:gz")
# COLLECT FILES # COLLECT FILES
package_parts = [ (part, title, perm) for part, title, perm in [ package_parts = [ (part, title, perm) for part, title, perm in [
( "checks", "Checks", 0644 ), ( "checks", "Checks", 0o644 ),
( "notifications", "Notification scripts", 0755 ), ( "notifications", "Notification scripts", 0o755 ),
( "inventory", "Inventory plugins", 0644 ), ( "inventory", "Inventory plugins", 0o644 ),
( "checkman", "Checks' man pages", 0644 ), ( "checkman", "Checks' man pages", 0o644 ),
( "agents", "Agents", 0755 ), ( "agents", "Agents", 0o755 ),
( "web", "Multisite extensions", 0644 ), ( "web", "Multisite extensions", 0o644 ),
( "pnp-templates", "PNP4Nagios templates", 0644 ), ( "pnp-templates", "PNP4Nagios templates", 0o644 ),
( "doc", "Documentation files", 0644 ), ( "doc", "Documentation files", 0o644 ),
( "bin", "Binaries", 0755 ), ( "bin", "Binaries", 0o755 ),
( "lib", "Libraries", 0644 ), ( "lib", "Libraries", 0o644 ),
( "mibs", "SNMP MIBs", 0644 ), ( "mibs", "SNMP MIBs", 0o644 ),
]] ]]
def files_in_dir(dir, prefix = ""): def files_in_dir(dir, prefix = ""):
@@ -94,7 +94,7 @@ def create_tar_info(filename, size):
info.uid = 0 info.uid = 0
info.gid = 0 info.gid = 0
info.size = size info.size = size
info.mode = 0644 info.mode = 0o644
info.type = tarfile.REGTYPE info.type = tarfile.REGTYPE
info.name = filename info.name = filename
return info return info
@@ -116,8 +116,8 @@ info["num_files"] = num_files
info_file = pprint.pformat(info) info_file = pprint.pformat(info)
info_json = json.dumps(info) info_json = json.dumps(info)
tar_from_string(tar, "info", info_file) tar_from_string(tar, "info", info_file.encode("utf-8"))
tar_from_string(tar, "info.json", info_json) tar_from_string(tar, "info.json", info_json.encode("utf-8"))
for part in info["files"]: for part in info["files"]: