utils: Add 'strip-store-file-name'.
* guix/build/utils.scm (strip-store-file-name): New procedure. * guix/build/emacs-build-system.scm (store-directory->name-version): Remove. Update callers to use 'strip-store-file-name'. * gnu/packages/gcc.scm (make-libstdc++-doc)[arguments]: Use 'strip-store-file-name' instead of 'string-drop'.master
parent
d56f8d5e74
commit
b7c7c03eb5
|
@ -578,11 +578,7 @@ using compilers other than GCC."
|
|||
(("@XSL_STYLE_DIR@")
|
||||
(string-append
|
||||
docbook "/xml/xsl/"
|
||||
(string-drop
|
||||
docbook
|
||||
(+ 34
|
||||
(string-length
|
||||
(%store-directory))))))))))
|
||||
(strip-store-file-name docbook)))))))
|
||||
(replace 'build
|
||||
(lambda _
|
||||
;; XXX: There's also a 'doc-info' target, but it
|
||||
|
|
|
@ -83,7 +83,7 @@ store in '.el' files."
|
|||
(let* ((out (assoc-ref outputs "out"))
|
||||
(elpa-name-ver (store-directory->elpa-name-version out))
|
||||
(el-dir (string-append out %install-suffix "/" elpa-name-ver))
|
||||
(name-ver (store-directory->name-version out))
|
||||
(name-ver (strip-store-file-name out))
|
||||
(info-dir (string-append out "/share/info/" name-ver))
|
||||
(info-files (find-files el-dir "\\.info$")))
|
||||
(unless (null? info-files)
|
||||
|
@ -116,7 +116,7 @@ store in '.el' files."
|
|||
(filter (match-lambda
|
||||
((label . directory)
|
||||
(emacs-package? ((compose package-name->name+version
|
||||
store-directory->name-version)
|
||||
strip-store-file-name)
|
||||
directory)))
|
||||
(_ #f))
|
||||
inputs))
|
||||
|
@ -138,25 +138,18 @@ DIRS."
|
|||
(define (package-name-version->elpa-name-version name-ver)
|
||||
"Convert the Guix package NAME-VER to the corresponding ELPA name-version
|
||||
format. Essnetially drop the prefix used in Guix."
|
||||
(let ((name (store-directory->name-version name-ver)))
|
||||
(let ((name (strip-store-file-name name-ver)))
|
||||
(if (emacs-package? name-ver)
|
||||
(store-directory->name-version name-ver)
|
||||
(strip-store-file-name name-ver)
|
||||
name-ver)))
|
||||
|
||||
(define (store-directory->elpa-name-version store-dir)
|
||||
"Given a store directory STORE-DIR return the part of the basename after the
|
||||
second hyphen. This corresponds to 'name-version' as used in ELPA packages."
|
||||
((compose package-name-version->elpa-name-version
|
||||
store-directory->name-version)
|
||||
strip-store-file-name)
|
||||
store-dir))
|
||||
|
||||
(define (store-directory->name-version store-dir)
|
||||
"Given a store directory STORE-DIR return the part of the basename
|
||||
after the first hyphen. This corresponds to 'name-version' of the package."
|
||||
(let* ((base (basename store-dir)))
|
||||
(string-drop base
|
||||
(+ 1 (string-index base #\-)))))
|
||||
|
||||
;; from (guix utils). Should we put it in (guix build utils)?
|
||||
(define (package-name->name+version name)
|
||||
"Given NAME, a package name like \"foo-0.9.1b\", return two values:
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
alist-delete)
|
||||
#:export (%store-directory
|
||||
store-file-name?
|
||||
strip-store-file-name
|
||||
parallel-job-count
|
||||
|
||||
directory-exists?
|
||||
|
@ -87,6 +88,12 @@
|
|||
"Return true if FILE is in the store."
|
||||
(string-prefix? (%store-directory) file))
|
||||
|
||||
(define (strip-store-file-name file)
|
||||
"Strip the '/gnu/store' and hash from FILE, a store file name. The result
|
||||
is typically a \"PACKAGE-VERSION\" string."
|
||||
(string-drop file
|
||||
(+ 34 (string-length (%store-directory)))))
|
||||
|
||||
(define parallel-job-count
|
||||
;; Number of processes to be passed next to GNU Make's `-j' argument.
|
||||
(make-parameter
|
||||
|
|
Reference in New Issue