selinux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] semanage bash completion: handle semanage module
@ 2020-05-31 20:18 Topi Miettinen
  2020-06-04 19:00 ` Stephen Smalley
  0 siblings, 1 reply; 3+ messages in thread
From: Topi Miettinen @ 2020-05-31 20:18 UTC (permalink / raw)
  To: selinux; +Cc: Topi Miettinen

List modules for bash completion of `semanage module`.

Signed-off-by: Topi Miettinen <toiwoton@gmail.com>

--
v2: removed -a or --add as they expect a file, not existing module
---
 python/semanage/semanage-bash-completion.sh | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/python/semanage/semanage-bash-completion.sh b/python/semanage/semanage-bash-completion.sh
index 2d811c98..d0dd139f 100644
--- a/python/semanage/semanage-bash-completion.sh
+++ b/python/semanage/semanage-bash-completion.sh
@@ -54,6 +54,9 @@ __get_all_roles () {
 __get_all_stores () {
     dir -1 -F /etc/selinux/ | grep '/' | cut -d'/' -f 1
 }
+__get_all_modules () {
+    semodule -l
+}
 __get_import_opts () { echo '$ALL_OPTS --f --input_file' ; }
 __get_export_opts () { echo '$ALL_OPTS --f --output_file' ; }
 __get_boolean_opts () { echo '$ALL_OPTS --on -off -1 -0' ; }
@@ -88,6 +91,13 @@ _semanage () {
 	if   [ "$prev" = "-a" -a "$command" = "permissive" ]; then
 	        COMPREPLY=( $(compgen -W "$( __get_all_domains ) " -- "$cur") )
 		return 0
+	elif [ "$command" = "module" ]; then
+		if [ "$prev" = "-d" ] || [ "$prev" = "--disable" ] \
+		    || [ "$prev" = "-e" ] || [ "$prev" = "--enable" ] \
+		    || [ "$prev" = "-r" ] || [ "$prev" = "--remove" ]; then
+	            COMPREPLY=( $(compgen -W "$( __get_all_modules ) " -- "$cur") )
+		    return 0
+		fi
 	fi
 	if   [ "$verb" = "" -a "$prev" = "semanage" ]; then
                 comps="${VERBS[*]}"
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] semanage bash completion: handle semanage module
  2020-05-31 20:18 [PATCH v2] semanage bash completion: handle semanage module Topi Miettinen
@ 2020-06-04 19:00 ` Stephen Smalley
  2020-06-09 19:49   ` Stephen Smalley
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Smalley @ 2020-06-04 19:00 UTC (permalink / raw)
  To: Topi Miettinen; +Cc: SElinux list

On Sun, May 31, 2020 at 4:25 PM Topi Miettinen <toiwoton@gmail.com> wrote:
>
> List modules for bash completion of `semanage module`.
>
> Signed-off-by: Topi Miettinen <toiwoton@gmail.com>

Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>

Only caveat is that this can only work if running as root, e.g. sudo
semanage module -d <TAB> will produce an error message from the shell
but I guess that is true in general.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] semanage bash completion: handle semanage module
  2020-06-04 19:00 ` Stephen Smalley
@ 2020-06-09 19:49   ` Stephen Smalley
  0 siblings, 0 replies; 3+ messages in thread
From: Stephen Smalley @ 2020-06-09 19:49 UTC (permalink / raw)
  To: Topi Miettinen; +Cc: SElinux list

On Thu, Jun 4, 2020 at 3:00 PM Stephen Smalley
<stephen.smalley.work@gmail.com> wrote:
>
> On Sun, May 31, 2020 at 4:25 PM Topi Miettinen <toiwoton@gmail.com> wrote:
> >
> > List modules for bash completion of `semanage module`.
> >
> > Signed-off-by: Topi Miettinen <toiwoton@gmail.com>
>
> Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>
>
> Only caveat is that this can only work if running as root, e.g. sudo
> semanage module -d <TAB> will produce an error message from the shell
> but I guess that is true in general.

Applied.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-06-09 19:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-31 20:18 [PATCH v2] semanage bash completion: handle semanage module Topi Miettinen
2020-06-04 19:00 ` Stephen Smalley
2020-06-09 19:49   ` Stephen Smalley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).