From 819a094bc19decc27a3bb2d95d33c41cd3370f31 Mon Sep 17 00:00:00 2001 From: Christian Kellner Date: Tue, 20 Apr 2021 16:17:51 +0000 Subject: [PATCH] stages: add mkfs.xfs stage --- stages/org.osbuild.mkfs.xfs | 65 +++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 stages/org.osbuild.mkfs.xfs diff --git a/stages/org.osbuild.mkfs.xfs b/stages/org.osbuild.mkfs.xfs new file mode 100755 index 00000000..61b490e4 --- /dev/null +++ b/stages/org.osbuild.mkfs.xfs @@ -0,0 +1,65 @@ +#!/usr/bin/python3 +""" +Construct an XFS file-system via mkfs.xfs(8) + +Construct a XFS file-system with the given options at the device +specified via `device`. + +Buildhost commands used: `mkfs.xfs`. +""" + +import subprocess +import sys + + +import osbuild.api + + +SCHEMA_2 = r""" +"devices": { + "type": "object", + "additionalProperties": true, + "required": ["device"], + "properties": { + "device": { + "type": "object", + "additionalProperties": true + } + } +}, +"options": { + "additionalProperties": false, + "required": ["uuid"], + "properties": { + "uuid": { + "description": "UUID for the file system", + "type": "string" + }, + "label": { + "description": "Label for the file system", + "type": "string", + "maxLength": 12 + } + } +} +""" + + +def main(devices, options): + device = devices["device"]["path"] + + uuid = options["uuid"] + label = options.get("label") + opts = [] + + if label: + opts = ["-L", label] + + subprocess.run(["mkfs.xfs", "-m", f"uuid={uuid}"] + opts + [device], + encoding='utf-8', check=True) + + +if __name__ == '__main__': + args = osbuild.api.arguments() + ret = main(args["devices"], args["options"]) + sys.exit(ret)