mirror of https://github.com/archzfs/archzfs
parent
285f84eed1
commit
99b18a326c
@ -1,2 +0,0 @@ |
||||
# ZFS is enabled by default |
||||
enable zfs.* |
@ -1,11 +0,0 @@ |
||||
[Unit] |
||||
Description=Import ZFS pools by cache file |
||||
DefaultDependencies=no |
||||
Requires=systemd-udev-settle.service |
||||
After=systemd-udev-settle.service |
||||
ConditionPathExists=/etc/zfs/zpool.cache |
||||
|
||||
[Service] |
||||
Type=oneshot |
||||
RemainAfterExit=yes |
||||
ExecStart=/usr/bin/zpool import -c /etc/zfs/zpool.cache -aN |
@ -1,11 +0,0 @@ |
||||
[Unit] |
||||
Description=Import ZFS pools by device scanning |
||||
DefaultDependencies=no |
||||
Requires=systemd-udev-settle.service |
||||
After=systemd-udev-settle.service |
||||
ConditionPathExists=!/etc/zfs/zpool.cache |
||||
|
||||
[Service] |
||||
Type=oneshot |
||||
RemainAfterExit=yes |
||||
ExecStart=/usr/bin/zpool import -d /dev/disk/by-id -aN |
@ -1,15 +0,0 @@ |
||||
[Unit] |
||||
Description=Mount ZFS filesystems |
||||
DefaultDependencies=no |
||||
Wants=zfs-import-cache.service |
||||
Wants=zfs-import-scan.service |
||||
Requires=systemd-udev-settle.service |
||||
After=systemd-udev-settle.service |
||||
After=zfs-import-cache.service |
||||
After=zfs-import-scan.service |
||||
Before=local-fs.target |
||||
|
||||
[Service] |
||||
Type=oneshot |
||||
RemainAfterExit=yes |
||||
ExecStart=/usr/bin/zfs mount -a |
@ -1,11 +0,0 @@ |
||||
[Unit] |
||||
Description=ZFS file system shares |
||||
After=nfs-server.service |
||||
After=smb.service |
||||
PartOf=nfs-server.service |
||||
PartOf=smb.service |
||||
|
||||
[Service] |
||||
Type=oneshot |
||||
RemainAfterExit=yes |
||||
ExecStart=/usr/bin/zfs share -a |
@ -1,232 +0,0 @@ |
||||
# Copyright (c) 2010, Aneurin Price <aneurin.price@gmail.com> |
||||
|
||||
# Permission is hereby granted, free of charge, to any person |
||||
# obtaining a copy of this software and associated documentation |
||||
# files (the "Software"), to deal in the Software without |
||||
# restriction, including without limitation the rights to use, |
||||
# copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
# copies of the Software, and to permit persons to whom the |
||||
# Software is furnished to do so, subject to the following |
||||
# conditions: |
||||
|
||||
# The above copyright notice and this permission notice shall be |
||||
# included in all copies or substantial portions of the Software. |
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
||||
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
||||
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
||||
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
||||
# OTHER DEALINGS IN THE SOFTWARE. |
||||
|
||||
__zfs_get_commands() |
||||
{ |
||||
zfs 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq |
||||
} |
||||
|
||||
__zfs_get_properties() |
||||
{ |
||||
zfs get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all |
||||
} |
||||
|
||||
__zfs_get_editable_properties() |
||||
{ |
||||
zfs get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}' |
||||
} |
||||
|
||||
__zfs_get_inheritable_properties() |
||||
{ |
||||
zfs get 2>&1 | awk '$3 == "YES" {print $1}' |
||||
} |
||||
|
||||
__zfs_list_datasets() |
||||
{ |
||||
zfs list -H -o name |
||||
} |
||||
|
||||
__zfs_list_filesystems() |
||||
{ |
||||
zfs list -H -o name -t filesystem |
||||
} |
||||
|
||||
__zfs_list_snapshots() |
||||
{ |
||||
zfs list -H -o name -t snapshot |
||||
} |
||||
|
||||
__zfs_list_volumes() |
||||
{ |
||||
zfs list -H -o name -t volume |
||||
} |
||||
|
||||
__zfs_argument_chosen() |
||||
{ |
||||
for word in $(seq $((COMP_CWORD-1)) -1 2) |
||||
do |
||||
local prev="${COMP_WORDS[$word]}" |
||||
for property in $@ |
||||
do |
||||
if [ "x$prev" = "x$property" ] |
||||
then |
||||
return 0 |
||||
fi |
||||
done |
||||
done |
||||
return 1 |
||||
} |
||||
|
||||
__zfs_complete_ordered_arguments() |
||||
{ |
||||
local list1=$1 |
||||
local list2=$2 |
||||
local cur=$3 |
||||
local extra=$4 |
||||
if __zfs_argument_chosen $list1 |
||||
then |
||||
COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur")) |
||||
else |
||||
COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur")) |
||||
fi |
||||
} |
||||
|
||||
__zfs_complete() |
||||
{ |
||||
local cur prev cmd cmds |
||||
COMPREPLY=() |
||||
cur="${COMP_WORDS[COMP_CWORD]}" |
||||
prev="${COMP_WORDS[COMP_CWORD-1]}" |
||||
cmd="${COMP_WORDS[1]}" |
||||
cmds=$(__zfs_get_commands) |
||||
|
||||
if [ "${prev##*/}" = "zfs" ] |
||||
then |
||||
COMPREPLY=($(compgen -W "$cmds -?" -- "$cur")) |
||||
return 0 |
||||
fi |
||||
|
||||
case "${cmd}" in |
||||
clone) |
||||
__zfs_complete_ordered_arguments "$(__zfs_list_snapshots)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur |
||||
return 0 |
||||
;; |
||||
get) |
||||
__zfs_complete_ordered_arguments "$(__zfs_get_properties)" "$(__zfs_list_datasets)" "$cur" "-H -r -p" |
||||
return 0 |
||||
;; |
||||
inherit) |
||||
__zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_list_datasets)" $cur |
||||
return 0 |
||||
;; |
||||
list) |
||||
if [ "x$prev" = "x-o" ] |
||||
then |
||||
COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "${cur##*,}")) |
||||
local existing_opts=$(expr "$cur" : '\(.*,\)') |
||||
if [ ! "x$existing_opts" = "x" ] |
||||
then |
||||
COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" ) |
||||
fi |
||||
else |
||||
COMPREPLY=($(compgen -W "$(__zfs_list_datasets) -H -r -o" -- "$cur")) |
||||
fi |
||||
return 0 |
||||
;; |
||||
promote) |
||||
COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur")) |
||||
return 0 |
||||
;; |
||||
rollback|send) |
||||
COMPREPLY=($(compgen -W "$(__zfs_list_snapshots)" -- "$cur")) |
||||
return 0 |
||||
;; |
||||
snapshot) |
||||
COMPREPLY=($(compgen -W "$(__zfs_list_filesystems) $(__zfs_list_volumes)" -- "$cur")) |
||||
return 0 |
||||
;; |
||||
set) |
||||
__zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur |
||||
return 0 |
||||
;; |
||||
*) |
||||
COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur")) |
||||
return 0 |
||||
;; |
||||
esac |
||||
|
||||
} |
||||
|
||||
__zpool_get_commands() |
||||
{ |
||||
zpool 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq |
||||
} |
||||
|
||||
__zpool_get_properties() |
||||
{ |
||||
zpool get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all |
||||
} |
||||
|
||||
__zpool_get_editable_properties() |
||||
{ |
||||
zpool get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}' |
||||
} |
||||
|
||||
__zpool_list_pools() |
||||
{ |
||||
zpool list -H -o name |
||||
} |
||||
|
||||
__zpool_complete() |
||||
{ |
||||
local cur prev cmd cmds |
||||
COMPREPLY=() |
||||
cur="${COMP_WORDS[COMP_CWORD]}" |
||||
prev="${COMP_WORDS[COMP_CWORD-1]}" |
||||
cmd="${COMP_WORDS[1]}" |
||||
cmds=$(__zpool_get_commands) |
||||
|
||||
if [ "${prev##*/}" = "zpool" ] |
||||
then |
||||
COMPREPLY=($(compgen -W "$cmds" -- "$cur")) |
||||
return 0 |
||||
fi |
||||
|
||||
case "${cmd}" in |
||||
get) |
||||
__zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur |
||||
return 0 |
||||
;; |
||||
import) |
||||
if [ "x$prev" = "x-d" ] |
||||
then |
||||
_filedir -d |
||||
else |
||||
COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur")) |
||||
fi |
||||
return 0 |
||||
;; |
||||
set) |
||||
__zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur |
||||
return 0 |
||||
;; |
||||
add|attach|clear|create|detach|offline|online|remove|replace) |
||||
local pools="$(__zpool_list_pools)" |
||||
if __zfs_argument_chosen $pools |
||||
then |
||||
_filedir |
||||
else |
||||
COMPREPLY=($(compgen -W "$pools" -- "$cur")) |
||||
fi |
||||
return 0 |
||||
;; |
||||
*) |
||||
COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur")) |
||||
return 0 |
||||
;; |
||||
esac |
||||
|
||||
} |
||||
|
||||
complete -F __zfs_complete zfs |
||||
complete -o filenames -F __zpool_complete zpool |
@ -1,19 +0,0 @@ |
||||
[Unit] |
||||
Description=Zettabyte File System (ZFS) |
||||
Documentation=man:zfs(8) man:zpool(8) |
||||
DefaultDependencies=no |
||||
After=cryptsetup.target |
||||
Before=local-fs.target |
||||
Conflicts=shutdown.target umount.target |
||||
|
||||
[Service] |
||||
Type=oneshot |
||||
RemainAfterExit=yes |
||||
ExecStart=/usr/bin/modprobe zfs |
||||
ExecStart=/usr/bin/zpool import -c /etc/zfs/zpool.cache -aN |
||||
ExecStart=/usr/bin/zfs mount -a |
||||
ExecStart=/usr/bin/zfs share -a |
||||
ExecStop=/usr/bin/zfs umount -a |
||||
|
||||
[Install] |
||||
WantedBy=local-fs.target |
@ -1,7 +0,0 @@ |
||||
[Unit] |
||||
Description=ZFS startup target |
||||
Requires=zfs-mount.service |
||||
Requires=zfs-share.service |
||||
|
||||
[Install] |
||||
WantedBy=multi-user.target |
Loading…
Reference in new issue