Improve __fish_print_service_names

- Reuse systemd completion functions
- Remove a fork
- Fix #2715 - FreeBSD
- Comments
This commit is contained in:
Fabian Homborg 2016-02-07 14:52:08 +01:00
parent c4d0612e5c
commit 57fcbecb41

View file

@ -1,9 +1,13 @@
function __fish_print_service_names -d 'All services known to the system'
if test -d /run/systemd/system
command systemctl list-units -t service | cut -d ' ' -f 1 | grep '\.service$' | sed -e 's/\.service$//'
else if type -f rc-service 2> /dev/null
if test -d /run/systemd/system # Systemd systems
# For the `service` command, this needs to be without the type suffix
# on Debian at least
__fish_systemctl_services | string replace -r '.service$' ''
else if type -f rc-service ^/dev/null # OpenRC (Gentoo)
command rc-service -l
else
command ls /etc/init.d
else if test -d /etc/init.d # SysV on Debian and other linuxen
string replace '/etc/init.d/' '' -- /etc/init.d/*
else # Freebsd
command service -l
end
end