File: Makefile

package info (click to toggle)
bleachbit 5.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,916 kB
  • sloc: python: 15,623; xml: 3,218; makefile: 232; sh: 9
file content (34 lines) | stat: -rw-r--r-- 1,187 bytes parent folder | download
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
# Copyright (C) 2008-2025 Andrew Ziem.  All rights reserved.
# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
# This is free software: You are free to change and redistribute it.
# There is NO WARRANTY, to the extent permitted by law.

# On some systems if not explicitly given, make uses /bin/sh, so 'make pretty' fails.
SHELL := /bin/bash

.PHONY: pretty tests require-xmllint

require-xmllint:
	command -v xmllint >/dev/null 2>&1 || { echo "ERROR: Missing xmllint. APT users, try: sudo apt install libxml2-utils"; exit 1; }

pretty: require-xmllint
	shopt -s nullglob; \
	for f in *xml; \
	do \
		xmllint --format "$$f" > "$$f.pretty"; \
		diff=`diff -q "$$f" "$$f.pretty" | grep -o differ`; \
		[[ "$$diff" != "differ" ]] && echo "$$f" unchanged && rm -- "$$f.pretty"; \
		[[ -s "$$f.pretty" ]] && echo "$$f" is pretty now!!! && mv -- "$$f.pretty" "$$f"; \
	done; \
	exit 0

tests: require-xmllint
	lintrc=0; \
	shopt -s nullglob; \
	for f in *.xml; \
	do \
		xmllint --noout --schema ../doc/cleaner_markup_language.xsd "$$f"; \
		# In case of an error, delay exit, so we can see all errors. \
		lintrc=$$(($$lintrc + $$?)); \
	done; \
	exit $$lintrc