1#
2# This file and its contents are supplied under the terms of the
3# Common Development and Distribution License ("CDDL"), version 1.0.
4# You may only use this file in accordance with the terms of version
5# 1.0 of the CDDL.
6#
7# A full copy of the text of the CDDL should have accompanied this
8# source. A copy of the CDDL is also available via the Internet at
9# http://www.illumos.org/license/CDDL.
10#
11
12#
13# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
14#
15
16#
17# Package manifest check
18#
19
20import sys
21from onbld.Checks.ProcessCheck import processcheck
22
23def check(fh, filename=None, output=sys.stderr, **opts):
24	if not filename:
25		filename = fh.name
26
27	options = ['-c', '-f', 'v2']
28	ret, tmpfile = processcheck('pkgfmt', options, fh, output)
29	tmpfile.close()
30	if ret == 0:
31		# Manifest passes validation
32		return 0
33
34	output.write('{} is not in pkgfmt v2 form;\n'.format(filename))
35	output.write('run `pkgfmt -f v2` on the file to re-format ' +
36	    'the manifest in-place\n')
37
38	return 1
39
40