mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-24 18:53:51 +08:00
164 lines
4.5 KiB
Fish
164 lines
4.5 KiB
Fish
function __fish_print_user_ids
|
|
if command -sq getent
|
|
for line in (getent passwd)
|
|
set -l v (string split : -- $line)
|
|
printf "%s\t%s\n" $v[3] $v[1]
|
|
end
|
|
end
|
|
end
|
|
|
|
function __fish_print_group_ids
|
|
if command -sq getent
|
|
for line in (getent group)
|
|
set -l v (string split : -- $line)
|
|
printf "%s\t%s\n" $v[3] $v[1]
|
|
end
|
|
end
|
|
end
|
|
|
|
function __fish_complete_mount_opts
|
|
set -l fish_mount_opts \
|
|
async\t'Use asynchronous I/O' \
|
|
atime\t'Update time on each access' \
|
|
noatime\t'Do not update time on each access' \
|
|
auto\t'Mounted with' \
|
|
noauto\t'Not mounted by -a' \
|
|
defaults\t'Use default options' \
|
|
dev\t'Interpret character/block special devices' \
|
|
nodev\t'Do not interpret character/block special devices' \
|
|
diratime\t'Update directory inode access time' \
|
|
nodiratime\t'Don\'t update directory inode access time' \
|
|
dirsync\t'Use synchronous directory operations' \
|
|
exec\t'Permit executables' \
|
|
noexec\t'Do not permit executables' \
|
|
group\t'Any user within device group may mount' \
|
|
iversion\t'Increment i_version field on inode modification' \
|
|
noiversion\t'Don\'t increment i_version field on inode modification' \
|
|
mand\t'Allow mandatory locks' \
|
|
nomand\t'Don\'t allow mandatory locks' \
|
|
_netdev\t'Filesystem uses network' \
|
|
nofail\t'Don\'t report errors' \
|
|
relatime\t'Update inode access times' \
|
|
norelatime\t'Don\'t update inode access times' \
|
|
strictatime \
|
|
nostrictatime \
|
|
lazytime \
|
|
nolazytime \
|
|
suid\t'Allow suid bits' \
|
|
nosuid\t'Ignore suid bits' \
|
|
silent \
|
|
loud \
|
|
owner \
|
|
remount\t'Remount read-only filesystem' \
|
|
ro\t'Mount read-only' \
|
|
rw\t'Mount read-write' \
|
|
sync\t'Use synchronous I/O' \
|
|
user\t'Any user may mount' \
|
|
nouser\t'Only root may mount' \
|
|
users\t'Any user may mount and unmount' \
|
|
protect \
|
|
usemp \
|
|
verbose \
|
|
{grp,no,usr,}quota \
|
|
autodefrag \
|
|
compress \
|
|
compress-force \
|
|
degraded \
|
|
discard \
|
|
enospc_debug \
|
|
flushoncommit \
|
|
inode_cache \
|
|
context=\t'Set SELinux context' \
|
|
uid= \
|
|
gid= \
|
|
ownmask= \
|
|
othmask= \
|
|
setuid= \
|
|
setgid= \
|
|
mode= \
|
|
prefix= \
|
|
volume= \
|
|
reserved= \
|
|
root= \
|
|
bs= \
|
|
alloc_start= \
|
|
check_int{,_data,_print,_mask}= \
|
|
commit= \
|
|
compress= \
|
|
compress-force= \
|
|
device= \
|
|
fatal_errors= \
|
|
max_inline= \
|
|
metadata_ratio= \
|
|
noacl \
|
|
nobarrier \
|
|
nodatacow \
|
|
nodatasum \
|
|
notreelog \
|
|
recovery \
|
|
rescan_uuid_tree \
|
|
skip_balance \
|
|
nospace_cache \
|
|
clear_cache \
|
|
ssd \
|
|
nossd \
|
|
ssd_spread \
|
|
subvol= \
|
|
subvolrootid= \
|
|
thread_pool= \
|
|
user_subvol_rm_allowed \
|
|
acl \
|
|
noacl \
|
|
bsddf \
|
|
minixdf \
|
|
check=none \
|
|
nocheck \
|
|
debug \
|
|
errors={continue,remount-ro,panic} \
|
|
grpid \
|
|
bsdgroups \
|
|
bsdgroups \
|
|
bsdgroups \
|
|
nouid32 \
|
|
grpquota \
|
|
grpquota \
|
|
resgid= \
|
|
resuid= \
|
|
sb= \
|
|
{user,nouser}_xattr \
|
|
journal={update,unum} \
|
|
journal{_dev,_path}= \
|
|
norecovery \
|
|
noload \
|
|
data={journal,ordered,writeback} \
|
|
data_err={ignore,abort} \
|
|
barrier={0,1} \
|
|
user_xattr \
|
|
acl \
|
|
set -l token (commandline -tc | string replace -r '^-o' -- '')
|
|
set -l args (string split , -- $token)
|
|
|
|
if test (count $args) -ne 0
|
|
set -l last_arg $args[-1]
|
|
set -e args[-1]
|
|
|
|
switch (string replace -r '=.*' '=' -- $last_arg)
|
|
case uid=
|
|
set -a fish_mount_opts uid=(__fish_print_user_ids)
|
|
case gid=
|
|
set -a fish_mount_opts gid=(__fish_print_group_ids)
|
|
case setuid=
|
|
set -a fish_mount_opts setuid=(__fish_print_user_ids)
|
|
case setgid=
|
|
set -a fish_mount_opts setgid=(__fish_print_group_ids)
|
|
end
|
|
end
|
|
|
|
set -l prefix ''
|
|
if set -q args[1]
|
|
set prefix (string join , -- $args),
|
|
end
|
|
|
|
printf '%s\n' $prefix$fish_mount_opts
|
|
end
|