[arch-projects] [netctl][PATCH] Add edit subcommand to netctl

Jouke Witteveen j.witteveen at gmail.com
Thu Jan 8 14:12:14 UTC 2015


---
 contrib/bash-completion |  4 ++--
 contrib/zsh-completion  |  5 +++--
 docs/netctl.1.txt       | 10 +++++++---
 src/netctl.in           |  5 ++++-
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/contrib/bash-completion b/contrib/bash-completion
index 0e5804f..4f73fab 100644
--- a/contrib/bash-completion
+++ b/contrib/bash-completion
@@ -23,10 +23,10 @@ _netctl()
 
     case $COMP_CWORD in
       1)
-        COMPREPLY=( $(compgen -W "--help --version list store restore stop-all start stop restart switch-to status enable disable is-enabled reenable" -- "$cur") )
+        COMPREPLY=( $(compgen -W "--help --version list store restore stop-all start stop restart switch-to status enable disable reenable is-enabled edit" -- "$cur") )
       ;;
       2)
-        [[ ${COMP_WORDS[COMP_CWORD-1]} = @(start|stop|restart|switch-to|status|enable|disable|is-enabled|reenable) ]] &&
+        [[ ${COMP_WORDS[COMP_CWORD-1]} = @(start|stop|restart|switch-to|status|enable|disable|reenable|is-enabled|edit) ]] &&
           mapfile -t COMPREPLY < <(IFS=$'\n'; compgen -W "$(_netctl_profiles)" -- "$cur")
       ;;
     esac
diff --git a/contrib/zsh-completion b/contrib/zsh-completion
index 8e88437..05c506f 100644
--- a/contrib/zsh-completion
+++ b/contrib/zsh-completion
@@ -11,7 +11,7 @@ _wireless_interfaces() {
 
 (( $+function[_netctl_command] )) ||
 _netctl_command() {
-    [[ $words[1] = (start|stop|restart|switch-to|status|enable|disable|is-enabled|reenable) ]] &&
+    [[ $words[1] = (start|stop|restart|switch-to|status|enable|disable|reenable|is-enabled|edit) ]] &&
       compadd "${(f)$(find -L /etc/netctl -maxdepth 1 -type f -not -name '.*' -not -name '*~' -not -name '*.conf' -not -name '*.service' -printf "%f\n")}"
 }
 
@@ -30,8 +30,9 @@ _netctl_commands() {
         'status:Show runtime status of a profile'
         'enable:Enable the systemd unit for a profile'
         'disable:Disable the systemd unit for a profile'
-        'is-enabled:Check whether a profile is enabled'
         'reenable:Reenable the systemd unit for a profile'
+        'is-enabled:Check whether a profile is enabled'
+        'edit:Edit a profile'
       )
     _describe "netctl commands" _commands
 }
diff --git a/docs/netctl.1.txt b/docs/netctl.1.txt
index 4120bdc..1f8b8cf 100644
--- a/docs/netctl.1.txt
+++ b/docs/netctl.1.txt
@@ -68,13 +68,17 @@ The following commands are understood:
     the file created by `*enable*' even if it was customized, so be
     careful.
 
+*reenable [+PROFILE+]*::
+    Reenable the systemd unit for the profile specified. This is
+    effectively a combination of `*disable*' and `*enable*'.
+
 *is-enabled [+PROFILE+]*::
     Check whether the systemd unit for the specified profile is enabled.
     Prints the current enable status.
 
-*reenable [+PROFILE+]*::
-    Reenable the systemd unit for the profile specified. This is
-    effectively a combination of `*disable*' and `*enable*'.
+*edit [+PROFILE+]*::
+    Open the file of the specified profile in an editor. This does not
+    reenable or restart any profiles.
 
 
 EXIT STATUS
diff --git a/src/netctl.in b/src/netctl.in
index b66cf71..2953ecf 100644
--- a/src/netctl.in
+++ b/src/netctl.in
@@ -20,8 +20,9 @@ Commands:
   status [PROFILE]      Show runtime status of a profile
   enable [PROFILE]      Enable the systemd unit for a profile
   disable [PROFILE]     Disable the systemd unit for a profile
-  is-enabled [PROFILE]  Check whether a profile is enabled
   reenable [PROFILE]    Reenable the systemd unit for a profile
+  is-enabled [PROFILE]  Check whether a profile is enabled
+  edit [PROFILE]        Edit a profile
 END
 }
 
@@ -180,6 +181,8 @@ case $# in
         if sd_booted; then
             systemctl daemon-reload
         fi;;
+      edit)
+        exec ${EDITOR:-nano} "$PROFILE_DIR/$2";;
       *)
         exit_error "$(usage)";;
     esac;;
-- 
2.2.1


More information about the arch-projects mailing list