stages/mkfs.ext4: new stage to create an ext4 fs

Stage to construct an ext4 file system on a specified device.
This commit is contained in:
Christian Kellner 2021-06-02 15:18:34 +00:00 committed by Tom Gundersen
parent 9c2d0744a9
commit 5dac944503

65
stages/org.osbuild.mkfs.ext4 Executable file
View file

@ -0,0 +1,65 @@
#!/usr/bin/python3
"""
Construct an ext4 file-system via mkfs.ext4(8)
Construct a ext4 file-system with the given options at the device
specified via `device`.
Buildhost commands used: `mke2fs`.
"""
import subprocess
import sys
import osbuild.api
SCHEMA_2 = r"""
"devices": {
"type": "object",
"additionalProperties": false,
"required": ["device"],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": ["uuid"],
"properties": {
"uuid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 16
}
}
}
"""
def main(devices, options):
device = devices["device"]["path"]
uuid = options["uuid"]
label = options.get("label")
opts = []
if label:
opts = ["-L", label]
subprocess.run(["mkfs.ext4", "-U", uuid] + opts + [device],
encoding='utf-8', check=True)
if __name__ == '__main__':
args = osbuild.api.arguments()
ret = main(args["devices"], args["options"])
sys.exit(ret)