tests: Improve 'shell.scm' script.
authorJustus Winter <justus@g10code.com>
Fri, 14 Jul 2017 10:59:00 +0000 (12:59 +0200)
committerJustus Winter <justus@g10code.com>
Fri, 14 Jul 2017 10:59:00 +0000 (12:59 +0200)
* tests/openpgp/defs.scm (create-file): Unlink file first.
* tests/openpgp/shell.scm: Ask whether to import legacy test keys or
not, and whether to drop 'batch' from the configuration.  Add paths to
all the programs to 'PATH'.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/openpgp/defs.scm
tests/openpgp/shell.scm

index 50976b9..b5e3078 100644 (file)
      (display (make-random-string size) port))))
 
 (define (create-file name . lines)
+  (catch #f (unlink name))
   (letfd ((fd (open name (logior O_WRONLY O_CREAT O_BINARY) #o600)))
     (let ((port (fdopen fd "wb")))
       (for-each (lambda (line) (display line port) (newline port))
index bd6059a..347b3a0 100644 (file)
@@ -18,7 +18,6 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (in-srcdir "tests" "openpgp" "defs.scm"))
-(setup-environment)
 
 ;; This is not a test, but can be used to inspect the test
 ;; environment.  Simply execute
 ;;
 ;; to run it.
 
-(echo "Note that gpg.conf includes 'batch'.  If you want to use gpg")
-(echo "interactively you should drop that.")
-(echo)
+(if (prompt-yes-no? "Load legacy test environment" #t)
+    (setup-legacy-environment)
+    (setup-environment))
+
+(if (prompt-yes-no? "Drop 'batch' from gpg.conf" #t)
+    (apply create-file
+          (cons "gpg.conf"
+                (filter (lambda (line) (not (equal? "batch" line)))
+                        (string-split-newlines
+                         (call-with-input-file "gpg.conf" read-all)))))
+    (begin
+      (echo "Note that gpg.conf includes 'batch'.  If you want to use gpg")
+      (echo "interactively you should drop that.")))
+
+;; Add paths to tools to PATH.
+(setenv "PATH" (pathsep-join
+               (append (map (lambda (t) (dirname (tool t)))
+                            '(gpg gpg-agent scdaemon gpgsm dirmngr gpgconf))
+                       (pathsep-split (getenv "PATH"))))
+       #t)
+
+(echo "\nEnjoy your test environment. "
+      "Type 'exit' to exit it, it will be cleaned up after you.\n")
+
 (interactive-shell)