logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

fstab.lua (7182B)


  1. -- Copyright 2016-2024 Christian Hesse. See LICENSE.
  2. -- fstab LPeg lexer.
  3. local lexer = lexer
  4. local P, S = lpeg.P, lpeg.S
  5. local lex = lexer.new(..., {lex_by_line = true})
  6. -- Keywords.
  7. lex:add_rule('keyword', lex:tag(lexer.KEYWORD, lex:word_match(lexer.KEYWORD)))
  8. -- Numbers.
  9. local uuid = lexer.xdigit^8 * ('-' * lexer.xdigit^4)^-3 * '-' * lexer.xdigit^12
  10. local integer = S('+-')^-1 * (lexer.hex_num + lexer.oct_num_('_') + lexer.dec_num_('_'))
  11. lex:add_rule('number', lex:tag(lexer.NUMBER, uuid + lexer.float + integer))
  12. -- Identifiers.
  13. lex:add_rule('identifier',
  14. lex:tag(lexer.IDENTIFIER, (lexer.alpha + '_') * (lexer.alnum + S('_.'))^0))
  15. -- Comments.
  16. lex:add_rule('comment', lex:tag(lexer.COMMENT, lexer.starts_line(lexer.to_eol('#'))))
  17. -- Directories.
  18. lex:add_rule('directory', lex:tag(lexer.VARIABLE, '/' * (1 - lexer.space)^0))
  19. -- Operators.
  20. lex:add_rule('operator', lex:tag(lexer.OPERATOR, S('=,')))
  21. lex:set_word_list(lexer.KEYWORD, {
  22. -- Basic filesystem-independent mount options.
  23. 'async', 'atime', 'auto', 'comment', 'context', 'defaults', 'defcontext', 'dev', 'dirsync',
  24. 'exec', 'fscontext', 'group', 'iversion', 'lazytime', 'loud', 'mand', '_netdev', 'noatime',
  25. 'noauto', 'nodev', 'nodiratime', 'noexec', 'nofail', 'noiversion', 'nolazytime', 'nomand',
  26. 'norelatime', 'nostrictatime', 'nosuid', 'nouser', 'owner', 'relatime', 'remount', 'ro',
  27. 'rootcontext', 'rw', 'silent', 'strictatime', 'suid', 'sync', 'user', 'users',
  28. -- Mount options for systemd see systemd.mount(5).
  29. 'x-systemd.automount', 'x-systemd.device-timeout', 'x-systemd.idle-timeout',
  30. 'x-systemd.mount-timeout', 'x-systemd.requires', 'x-systemd.requires-mounts-for',
  31. 'x-initrd.mount',
  32. -- Mount options for adfs.
  33. 'uid', 'gid', 'ownmask', 'othmask',
  34. -- Mount options for affs.
  35. 'uid', 'gid', 'setuid', 'setgid', 'mode', 'protect', 'usemp', 'verbose', 'prefix', 'volume',
  36. 'reserved', 'root', 'bs', 'grpquota', 'noquota', 'quota', 'usrquota',
  37. -- Mount options for btrfs.
  38. 'alloc_start', 'autodefrag', 'check_int', 'check_int_data', 'check_int_print_mask', 'commit',
  39. 'compress', 'zlib', 'lzo', 'no', 'compress-force', 'degraded', 'device', 'discard',
  40. 'enospc_debug', 'fatal_errors', 'bug', 'panic', 'flushoncommit', 'inode_cache', 'max_inline',
  41. 'metadata_ratio', 'noacl', 'nobarrier', 'nodatacow', 'nodatasum', 'notreelog', 'recovery',
  42. 'rescan_uuid_tree', 'skip_balance', 'space_cache', 'nospace_cache', 'clear_cache', 'ssd', 'nossd',
  43. 'ssd_spread', 'subvol', 'subvolid', 'subvolrootid', 'thread_pool', 'user_subvol_rm_allowed',
  44. -- Mount options for devpts.
  45. 'uid', 'gid', 'mode', 'newinstance', 'ptmxmode',
  46. -- Mount options for ext2.
  47. 'acl', 'noacl', 'bsddf', 'minixdf', 'check', 'nocheck', 'debug', 'errors', 'continue',
  48. 'remount-ro', 'panic', 'grpid', 'bsdgroups', 'nogrpid', 'sysvgroups', 'grpquota', 'noquota',
  49. 'quota', 'usrquota', 'nouid32', 'oldalloc', 'orlov', 'resgid', 'resuid', 'sb', 'user_xattr',
  50. 'nouser_xattr',
  51. -- Mount options for ext3.
  52. 'journal', 'update', 'journal_dev', 'journal_path', 'norecoverynoload', 'data', 'journal',
  53. 'ordered', 'writeback', 'data_err', 'ignore', 'abort', 'barrier', 'commit', 'user_xattr', 'acl',
  54. 'usrjquota', 'grpjquota', 'jqfmt',
  55. -- Mount options for ext4.
  56. 'journal_checksum', 'journal_async_commit', 'barrier', 'nobarrier', 'inode_readahead_blks',
  57. 'stripe', 'delalloc', 'nodelalloc', 'max_batch_time', 'min_batch_time', 'journal_ioprio', 'abort',
  58. 'auto_da_alloc', 'noauto_da_alloc', 'noinit_itable', 'init_itable', 'discard', 'nodiscard',
  59. 'nouid32', 'block_validity', 'noblock_validity', 'dioread_lock', 'dioread_nolock',
  60. 'max_dir_size_kb', 'i_version',
  61. -- Mount options for fat (common part of msdos umsdos and vfat).
  62. 'blocksize', 'uid', 'gid', 'umask', 'dmask', 'fmask', 'allow_utime', 'check', 'relaxed', 'normal',
  63. 'strict', 'codepage', 'conv', 'binary', 'text', 'auto', 'cvf_format', 'cvf_option', 'debug',
  64. 'discard', 'dos1xfloppy', 'errors', 'panic', 'continue', 'remount-ro', 'fat', 'iocharset', 'nfs',
  65. 'stale_rw', 'nostale_ro', 'tz', 'time_offset', 'quiet', 'rodir', 'showexec', 'sys_immutable',
  66. 'flush', 'usefree', 'dots', 'nodots', 'dotsOK',
  67. -- Mount options for hfs.
  68. 'creator', 'type', 'uid', 'gid', 'dir_umask', 'file_umask', 'umask', 'session', 'part', 'quiet',
  69. -- Mount options for hpfs.
  70. 'uid', 'gid', 'umask', 'case', 'lower', 'asis', 'conv', 'binary', 'text', 'auto', 'nocheck',
  71. -- Mount options for iso9660.
  72. 'norock', 'nojoliet', 'check', 'relaxed', 'strict', 'uid', 'gid', 'map', 'normal', 'offacorn',
  73. 'mode', 'unhide', 'block', 'conv', 'auto', 'binary', 'mtext', 'text', 'cruft', 'session',
  74. 'sbsector', 'iocharset', 'utf8',
  75. -- Mount options for jfs.
  76. 'iocharset', 'resize', 'nointegrity', 'integrity', 'errors', 'continue', 'remount-ro', 'panic',
  77. 'noquota', 'quota', 'usrquota', 'grpquota',
  78. -- Mount options for ntfs.
  79. 'iocharset', 'nls', 'utf8', 'uni_xlate', 'posix', 'uid', 'gid', 'umask',
  80. -- Mount options for overlay.
  81. 'lowerdir', 'upperdir', 'workdir',
  82. -- Mount options for reiserfs.
  83. 'conv', 'hash', 'rupasov', 'tea', 'r5', 'detect', 'hashed_relocation', 'no_unhashed_relocation',
  84. 'noborder', 'nolog', 'notail', 'replayonly', 'resize', 'user_xattr', 'acl', 'barrier', 'none',
  85. 'flush',
  86. -- Mount options for tmpfs.
  87. 'size', 'nr_blocks', 'nr_inodes', 'mode', 'uid', 'gid', 'mpol', 'default', 'prefer', 'bind',
  88. 'interleave',
  89. -- Mount options for ubifs.
  90. 'bulk_read', 'no_bulk_read', 'chk_data_crc', 'no_chk_data_crc.', 'compr', 'none', 'lzo', 'zlib',
  91. -- Mount options for udf.
  92. 'gid', 'umask', 'uid', 'unhide', 'undelete', 'nostrict', 'iocharset', 'bs', 'novrs', 'session',
  93. 'anchor', 'volume', 'partition', 'lastblock', 'fileset', 'rootdir',
  94. -- Mount options for ufs.
  95. 'ufstype', 'old', '44bsd', 'ufs2', '5xbsd', 'sun', 'sunx86', 'hp', 'nextstep', 'nextstep-cd',
  96. 'openstep', 'onerror', 'lock', 'umount', 'repair',
  97. -- Mount options for vfat.
  98. 'uni_xlate', 'posix', 'nonumtail', 'utf8', 'shortname', 'lower', 'win95', 'winnt', 'mixed',
  99. -- Mount options for usbfs.
  100. 'devuid', 'devgid', 'devmode', 'busuid', 'busgid', 'busmode', 'listuid', 'listgid', 'listmode',
  101. -- Mount options for proc.
  102. 'hidepid',
  103. -- Filesystems.
  104. 'adfs', 'ados', 'affs', 'anon_inodefs', 'atfs', 'audiofs', 'auto', 'autofs', 'bdev', 'befs',
  105. 'bfs', 'btrfs', 'binfmt_misc', 'cd9660', 'cfs', 'cgroup', 'cifs', 'coda', 'configfs', 'cpuset',
  106. 'cramfs', 'devfs', 'devpts', 'devtmpfs', 'e2compr', 'efs', 'ext2', 'ext2fs', 'ext3', 'ext4',
  107. 'fdesc', 'ffs', 'filecore', 'fuse', 'fuseblk', 'fusectl', 'hfs', 'hpfs', 'hugetlbfs', 'iso9660',
  108. 'jffs', 'jffs2', 'jfs', 'kernfs', 'lfs', 'linprocfs', 'mfs', 'minix', 'mqueue', 'msdos', 'ncpfs',
  109. 'nfs', 'nfsd', 'nilfs2', 'none', 'ntfs', 'null', 'nwfs', 'overlay', 'ovlfs', 'pipefs', 'portal',
  110. 'proc', 'procfs', 'pstore', 'ptyfs', 'qnx4', 'reiserfs', 'ramfs', 'romfs', 'securityfs', 'shm',
  111. 'smbfs', 'squashfs', 'sockfs', 'sshfs', 'std', 'subfs', 'swap', 'sysfs', 'sysv', 'tcfs', 'tmpfs',
  112. 'udf', 'ufs', 'umap', 'umsdos', 'union', 'usbfs', 'userfs', 'vfat', 'vs3fs', 'vxfs', 'wrapfs',
  113. 'wvfs', 'xenfs', 'xfs', 'zisofs'
  114. })
  115. lexer.property['scintillua.comment'] = '#'
  116. return lex