#lang scheme/base
(require scheme/system
mzlib/trace
(planet bzlib/file)
)
(define (post-installer (collect-path (current-directory)) (package-path (current-directory)))
(define (satisfy-version? out (match 3))
(let ((ver (regexp-match #px"(\\d+\\.\\d+).*" out)))
(cond ((not ver) (values ver #f))
((>= (string->number (cadr ver)) match)
(values (cadr ver) #t))
(else (values ver #f)))))
(define (helper cout)
(let-values (((ver match?)
(satisfy-version? cout)))
(if match?
(display (format "You have FLEX SDK (version = ~a) installed. Your package should work correctly.\n" ver))
(error 'wrong-verion "Your FLEX SDK (version = ~a) does not meet requirement - please upgrade to version > 3." ver))))
(let-values (((res code cout cerr)
(sys/call "mxmlc" "-version")))
(if (not res)
(error 'not-java-installed "We cannot find your FLEX SDK installation via shell. Please make sure it is installed (version >= 3)")
(helper (bytes->string/utf-8 cout)))))
(provide post-installer)