(define-module (terraform) #:use-module (guix packages) #:use-module (gnu packages golang) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (nonguix build-system binary)) (define-public snam-terraform (package (name "snam-terraform") (version "1.8.4") (source (origin (method url-fetch) (uri (string-append "https://releases.hashicorp.com/terraform/" version "/terraform_" version "_linux_amd64.zip")) (sha256 (base32 "1i181cmzwlrx8d40z1spilcwgnhkzwalrg8822d23sqdmrs7a5hj")))) (build-system binary-build-system) (supported-systems '("x86_64-linux")) (arguments '( #:install-plan `(("." ("terraform") "bin/")) #:phases (modify-phases %standard-phases ;; this is required because standard unpack expects ;; the archive to contain a directory with everything inside it, ;; while babashka's release .tar.gz only contains the `bb` binary. (replace 'unpack (lambda* (#:key inputs #:allow-other-keys) (system* (which "unzip") (assoc-ref inputs "source")) #t))))) (inputs `(("libstdc++" ,(make-libstdc++ gcc)) ("zlib" ,zlib))) (native-inputs `(("unzip" ,unzip))) (synopsis "A tool to describe and deploy infrastructure as code") (description "Terraform allows you to describe your complete infrastructure in the form of code. Even if your servers come from different providers such as AWS or Azure, Terraform helps you build and manage these resources in parallel across providers.") (home-page "https://hashicorp.com/terraform") (license #f))) snam-terraform