diff options
Diffstat (limited to 'gnu/packages/terraform.scm')
-rw-r--r-- | gnu/packages/terraform.scm | 160 |
1 files changed, 159 insertions, 1 deletions
diff --git a/gnu/packages/terraform.scm b/gnu/packages/terraform.scm index f14b152fdb..d96c5b0dfc 100644 --- a/gnu/packages/terraform.scm +++ b/gnu/packages/terraform.scm @@ -22,7 +22,48 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) - #:use-module (guix build-system go)) + #:use-module (guix build-system go) + #:use-module (gnu packages golang) + #:use-module (gnu packages cdrom) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages virtualization)) + +(define-public terraform + (package + (name "terraform") + (version "0.11.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/terraform") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0637x7jcm62pdnivmh4rggly6dmlvdh3jpsd1z4vba15gbm203nz")))) + (build-system go-build-system) + (outputs '("out" "lib")) + (arguments + '(#:import-path "github.com/hashicorp/terraform" + #:phases + (modify-phases %standard-phases + ;; I'm not sure what purpose they serve, but they are readonly, so + ;; they break the reset-gzip-timestamps phase. + (add-after 'install 'delete-test-fixtures + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively + (string-append + (assoc-ref outputs "lib") + "/src/github.com/hashicorp/terraform/config/module/test-fixtures"))))))) + (synopsis "Tool for building and changing computing infrastructure") + (description + "Terraform uses descriptions of infrastructure written in @acronym{HCL, +Hashicorp Configuration Language} which describe graphs of resources, +including information about dependencies. From this, Terraform can plan and +apply changes to the described resources. + +Terraform uses plugins that provide intergrations to different providers.") + (home-page "https://www.terraform.io/") + (license license:mpl2.0))) (define-public terraform-docs (package @@ -47,3 +88,120 @@ the inputs and outputs for modules of the Terraform infrastructure management tool. These can be shown, or written to a file in JSON or Markdown formats.") (home-page "https://github.com/segmentio/terraform-docs") (license license:expat))) + +(define-public terraform-provider-libvirt + (package + (name "terraform-provider-libvirt") + (version "0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dmacvicar/terraform-provider-libvirt") + (commit (string-append "v" version)))) + (sha256 + (base32 + "004gxy55p5cf39f2zpah0i2zhvs4x6ixnxy8z9v7314604ggpkna")))) + (build-system go-build-system) + (outputs '("out" "lib")) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libvirt" ,libvirt) + ("cdrtools" ,cdrtools))) + (arguments + '(#:import-path "github.com/dmacvicar/terraform-provider-libvirt" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-mkisofs + (lambda* (#:key inputs #:allow-other-keys) + (substitute* + "src/github.com/dmacvicar/terraform-provider-libvirt/libvirt/cloudinit_def.go" + (("mkisofs") + (string-append (assoc-ref inputs "cdrtools") + "/bin/mkisofs"))))) + ;; This should be redundant once the vendor directory is removed from + ;; this package + (add-before 'reset-gzip-timestamps 'remove-readonly-gzip-files + (lambda* (#:key outputs #:allow-other-keys) + (for-each delete-file + (find-files + (assoc-ref outputs "lib") + ".*\\.t?gz"))))))) + (synopsis "") + (description "") + (home-page "") + (license ""))) + +(define-public terraform-provider-template + (package + (name "terraform-provider-template") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/terraform-providers/terraform-provider-template") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jl6bp6gwg96sdk5j6s13vv1j9gxjpy2yva3barmzv9138i665mz")))) + (build-system go-build-system) + (outputs '("out" "lib")) + (arguments + '(#:import-path "github.com/terraform-providers/terraform-provider-template")) + (synopsis "") + (description "") + (home-page "") + (license ""))) + +(define-public terraform-provider-aws + (package + (name "terraform-provider-aws") + (version "1.23.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/terraform-providers/terraform-provider-aws") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "156277pbllmglpppnrp6qskiq744mxjjmsw39d0d3qpqs5af4x1y")))) + (build-system go-build-system) + (outputs '("out" "lib")) + (arguments + '(#:import-path "github.com/terraform-providers/terraform-provider-aws" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'remove-readonly-gzip-files + (lambda* (#:key outputs #:allow-other-keys) + (for-each delete-file + (find-files + (assoc-ref outputs "lib") + ".*\\.t?gz"))))))) + (synopsis "") + (description "") + (home-page "") + (license ""))) + +(define-public terraform-provider-local + (package + (name "terraform-provider-local") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/terraform-providers/terraform-provider-local") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qxfyyg8k43rw0gny4dadamc2a9hk3x6ybdivifjc17m7il0janc")))) + (build-system go-build-system) + (outputs '("out" "lib")) + (arguments + '(#:import-path "github.com/terraform-providers/terraform-provider-local")) + (synopsis "") + (description "") + (home-page "") + (license ""))) |