summaryrefslogtreecommitdiff
path: root/gnu/packages/golang.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/golang.scm')
-rw-r--r--gnu/packages/golang.scm59
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index b824ef83b6..d2ca7c44f2 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -58,6 +58,7 @@
#:use-module (gnu packages mp3)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages web)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
@@ -5874,3 +5875,61 @@ additions.")
"Package quicktest provides a collection of Go helpers for writing
tests.")
(license license:expat)))
+
+(define-public go-github-com-bep-golibsass
+ (package
+ (name "go-github-com-bep-golibsass")
+ (version "0.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bep/golibsass")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "libsass_src")
+ #t))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/bep/golibsass/libsass"
+ #:unpack-path "github.com/bep/golibsass"
+ ;; The dev build tag modifies the build to link to system libsass
+ ;; instead of including the bundled one (which we remove.)
+ ;; https://github.com/bep/golibsass/blob/v0.7.0/internal/libsass/a__cgo_dev.go
+ #:build-flags '("-tags" "dev")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-bindings
+ ;; Generate bindings for system libsass, replacing the
+ ;; pre-generated bindings.
+ (lambda* (#:key inputs unpack-path #:allow-other-keys)
+ (mkdir-p (string-append "src/" unpack-path "/internal/libsass"))
+ (let ((libsass-src (string-append (assoc-ref inputs "libsass-src") "/src")))
+ (substitute* (string-append "src/" unpack-path "/gen/main.go")
+ (("filepath.Join\\(rootDir, \"libsass_src\", \"src\"\\)")
+ (string-append "\"" libsass-src "\""))
+ (("../../libsass_src/src/")
+ libsass-src)))
+ (invoke "go" "generate" (string-append unpack-path "/gen"))
+ #t))
+ (replace 'check
+ (lambda* (#:key tests? import-path #:allow-other-keys)
+ (if tests?
+ (invoke "go" "test" import-path "-tags" "dev"))
+ #t)))))
+ (propagated-inputs
+ `(("libsass" ,libsass)))
+ (native-inputs
+ `(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest)
+ ("libsass-src" ,(package-source libsass))))
+ (home-page "https://github.com/bep/golibsass")
+ (synopsis "Easy to use Go bindings for LibSass")
+ (description
+ "This package provides SCSS compiler support for Go applications.")
+ (license license:expat)))