mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
Let's keep the comments together with the lines they describe, this is easier
to read and probably more maintainable in the long run.
Also, () → {} for idiomaticity.
54 lines
1.6 KiB
Python
Executable File
54 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
import sys
|
|
|
|
|
|
def filter_fsname(name):
|
|
# File system magics are sometimes not unique, because file systems got new
|
|
# revisions or got renamed. Let's prefer newer over older here, and thus
|
|
# ignore the old names.
|
|
|
|
return name in {
|
|
"cpuset", # magic taken over by cgroupfs
|
|
"devtmpfs", # not a file system of its own, but just a "named superblock" of tmpfs
|
|
"ext2", # ext4 is the newest revision of ext2 + ext3
|
|
"ext3",
|
|
"fuseblk", # closely related to fuse; they share a single magic, but the latter is more common
|
|
"gfs", # magic taken over by gfs2
|
|
"msdos", # vfat is the newest revision of msdos
|
|
"ncp", # ncpfs (not ncp) was the last name of the netware `file_system_type`
|
|
# name before it was removed in 2018
|
|
"nfs", # nfs4 is the newest revision of nfs
|
|
"pvfs2", # orangefs is the new name of pvfs2
|
|
"smb3", # smb3 is an alias for cifs
|
|
}
|
|
|
|
|
|
gperf_file = sys.argv[1]
|
|
keywords_section = False
|
|
|
|
for line in open(gperf_file):
|
|
if line[0] == "#":
|
|
continue
|
|
|
|
if keywords_section:
|
|
name, ids = line.split(",", 1)
|
|
|
|
name = name.strip()
|
|
if filter_fsname(name):
|
|
continue
|
|
|
|
ids = ids.strip()
|
|
assert ids[0] == "{"
|
|
assert ids[-1] == "}"
|
|
ids = ids[1:-1]
|
|
|
|
for id in ids.split(","):
|
|
print(f"case (statfs_f_type_t) {id.strip()}:")
|
|
|
|
print(f' return "{name}";')
|
|
|
|
if line.startswith("%%"):
|
|
keywords_section = True
|