diff mbox series

[v5,9/9] qemu-binfmt-conf.sh: add --test

Message ID 20190311202418.GI9@59ca1d9b7985
State New
Headers show
Series qemu-binfmt-conf.sh | expand

Commit Message

Unai Martinez Corral March 11, 2019, 8:24 p.m. UTC
Signed-off-by: Unai Martinez-Corral <unai.martinezcorral@ehu.eus>
---
 scripts/qemu-binfmt-conf.sh | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

--
2.21.0

Comments

Laurent Vivier March 12, 2019, 11:44 a.m. UTC | #1
On 11/03/2019 21:24, Unai Martinez-Corral wrote:
> Signed-off-by: Unai Martinez-Corral <unai.martinezcorral@ehu.eus>
> ---
>  scripts/qemu-binfmt-conf.sh | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
> index 382bdaabfe..b750f60ef5 100755
> --- a/scripts/qemu-binfmt-conf.sh
> +++ b/scripts/qemu-binfmt-conf.sh
> @@ -197,8 +197,7 @@ Options and associated environment variables:
> 
>  Argument             Env-variable     Description
>  TARGETS              QEMU_TARGETS     A single arch name or a list of them (see all names below);
> -                                      if empty, configure/clear all known targets;
> -                                      if 'NONE', no interpreter is configured.
> +                                      if empty, configure/clear all known targets.
>  -h|--help                             display this usage
>  -Q|--path PATH       QEMU_PATH        set path to qemu interpreter(s)
>  -F|--suffix SUFFIX   QEMU_SUFFIX      add a suffix to the default interpreter name
> @@ -208,6 +207,8 @@ TARGETS              QEMU_TARGETS     A single arch name or a list of them (see
>                                        to the binary to interpret
>  -r|--clear           QEMU_CLEAR       (yes) remove registered interpreters for target TARGETS;
>                                        then exit.
> +-t|--test            QEMU_TEST        (yes) test the setup with the provided arguments, but do not
> +                                      configure any of the interpreters.
>  -e|--exportdir PATH  DEBIANDIR        define where to write configuration files
>                       SYSTEMDDIR
>  -s|--systemd                          don't write into /proc, generate file(s) for
> @@ -221,6 +222,7 @@ QEMU_SUFFIX=$QEMU_SUFFIX
>  QEMU_PERSISTENT=$QEMU_PERSISTENT
>  QEMU_CREDENTIAL=$QEMU_CREDENTIAL
>  QEMU_CLEAR=$QEMU_CLEAR
> +QEMU_TEST=$QEMU_TEST
> 
>  To import templates with update-binfmts, use :
> 
> @@ -319,9 +321,6 @@ qemu_set_binfmts() {
> 
>      # reduce the list of target interpreters to those given in the CLI
>      [ $# -eq 0 ] && targets="${QEMU_TARGETS:-}" || targets="$@"
> -    if [ "x$targets" = "xNONE" ] ; then
> -      return
> -    fi
>      qemu_check_target_list $targets
> 
>      # register the interpreter for each target except for the native one
> @@ -379,12 +378,16 @@ QEMU_SUFFIX="${QEMU_SUFFIX:-}"
>  QEMU_PERSISTENT="${QEMU_PERSISTENT:-no}"
>  QEMU_CREDENTIAL="${QEMU_CREDENTIAL:-no}"
>  QEMU_CLEAR="${QEMU_CLEAR:-no}"
> +QEMU_TEST="${QEMU_TEST:-no}"
> 
> -options=$(getopt -o rdsQ:S:e:hcp -l clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
> +options=$(getopt -o trdsQ:S:e:hcp -l test,clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
>  eval set -- "$options"
> 
>  while true ; do
>      case "$1" in
> +    -t|--test)
> +        QEMU_TEST="yes"
> +    ;;

Please, put the ";;" at the same position as the others.

>      -r|--clear)
>          QEMU_CLEAR="yes"
>          ;;
> @@ -438,4 +441,8 @@ if [ "x$QEMU_CLEAR" = "xyes" ] ; then
>      exit
>  fi
> 
> +if [ "x$QEMU_TEST" = "xyes" ] ; then
> +    BINFMT_SET=:

I think you have also to set BINFMT_CLEAR to ':' to allow --test to work
with --clear.

Thanks,
Laurent

> +fi
> +
>  qemu_set_binfmts "$@"
> --
> 2.21.0
>
diff mbox series

Patch

diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 382bdaabfe..b750f60ef5 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -197,8 +197,7 @@  Options and associated environment variables:

 Argument             Env-variable     Description
 TARGETS              QEMU_TARGETS     A single arch name or a list of them (see all names below);
-                                      if empty, configure/clear all known targets;
-                                      if 'NONE', no interpreter is configured.
+                                      if empty, configure/clear all known targets.
 -h|--help                             display this usage
 -Q|--path PATH       QEMU_PATH        set path to qemu interpreter(s)
 -F|--suffix SUFFIX   QEMU_SUFFIX      add a suffix to the default interpreter name
@@ -208,6 +207,8 @@  TARGETS              QEMU_TARGETS     A single arch name or a list of them (see
                                       to the binary to interpret
 -r|--clear           QEMU_CLEAR       (yes) remove registered interpreters for target TARGETS;
                                       then exit.
+-t|--test            QEMU_TEST        (yes) test the setup with the provided arguments, but do not
+                                      configure any of the interpreters.
 -e|--exportdir PATH  DEBIANDIR        define where to write configuration files
                      SYSTEMDDIR
 -s|--systemd                          don't write into /proc, generate file(s) for
@@ -221,6 +222,7 @@  QEMU_SUFFIX=$QEMU_SUFFIX
 QEMU_PERSISTENT=$QEMU_PERSISTENT
 QEMU_CREDENTIAL=$QEMU_CREDENTIAL
 QEMU_CLEAR=$QEMU_CLEAR
+QEMU_TEST=$QEMU_TEST

 To import templates with update-binfmts, use :

@@ -319,9 +321,6 @@  qemu_set_binfmts() {

     # reduce the list of target interpreters to those given in the CLI
     [ $# -eq 0 ] && targets="${QEMU_TARGETS:-}" || targets="$@"
-    if [ "x$targets" = "xNONE" ] ; then
-      return
-    fi
     qemu_check_target_list $targets

     # register the interpreter for each target except for the native one
@@ -379,12 +378,16 @@  QEMU_SUFFIX="${QEMU_SUFFIX:-}"
 QEMU_PERSISTENT="${QEMU_PERSISTENT:-no}"
 QEMU_CREDENTIAL="${QEMU_CREDENTIAL:-no}"
 QEMU_CLEAR="${QEMU_CLEAR:-no}"
+QEMU_TEST="${QEMU_TEST:-no}"

-options=$(getopt -o rdsQ:S:e:hcp -l clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
+options=$(getopt -o trdsQ:S:e:hcp -l test,clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@")
 eval set -- "$options"

 while true ; do
     case "$1" in
+    -t|--test)
+        QEMU_TEST="yes"
+    ;;
     -r|--clear)
         QEMU_CLEAR="yes"
         ;;
@@ -438,4 +441,8 @@  if [ "x$QEMU_CLEAR" = "xyes" ] ; then
     exit
 fi

+if [ "x$QEMU_TEST" = "xyes" ] ; then
+    BINFMT_SET=:
+fi
+
 qemu_set_binfmts "$@"