11 Manifest
(require pmsf/manifest) | package: pmsf-manifest |
PMSF Manifest structures and support utilities implementation is primarily based on the GLEP 74 document.
11.1 Manifest structs
(require pmsf/manifest/struct) | package: pmsf-manifest |
struct
(struct checksum (algorithm sum) #:extra-constructor-name make-checksum #:transparent) algorithm : string? sum : string?
> (checksum "BLAKE2B" "7ff24aa2e16a") (checksum "BLAKE2B" "7ff24aa2e16a")
struct
(struct pathcheck (path size checksums) #:extra-constructor-name make-pathcheck #:transparent) path : path-string? size : exact-nonnegative-integer? checksums : (listof checksum?)
> (pathcheck "file" 0 '()) (pathcheck "file" 0 '())
struct
(struct submanifest pathcheck () #:extra-constructor-name make-submanifest #:transparent)
> (submanifest "app-accessibility/Manifest" 14821 (list (checksum "SHA256" "1b5f") (checksum "SHA512" "f7eb")))
(submanifest
"app-accessibility/Manifest"
14821
(list (checksum "SHA256" "1b5f") (checksum "SHA512" "f7eb")))
See GLEP 74 "Deprecated Manifest tags".
> (data "files/gcc34.patch" 333 (list (checksum "SHA256" "c107") (checksum "SHA512" "9919")))
(data
"files/gcc34.patch"
333
(list (checksum "SHA256" "c107") (checksum "SHA512" "9919")))
struct
(struct manifest (timestamp ignore submanifests data dist aux) #:extra-constructor-name make-manifest #:transparent) timestamp : date? ignore : (listof path-string?) submanifests : (listof submanifest?) data : (listof data?) dist : (listof dist?) aux : (listof aux?)
> (manifest (date* 12 11 10 30 10 2017 1 302 #f 3600 0 "") '("distfiles" "local" "lost+found" "packages") (list (submanifest "app-accessibility/Manifest" 14821 (list (checksum "SHA256" "1b5f") (checksum "SHA512" "f7eb"))) (submanifest "eclass/Manifest.gz" 50812 (list (checksum "SHA256" "8c55") (checksum "SHA512" "2915")))) '() '() '())
(manifest
(date* 12 11 10 30 10 2017 1 302 #f 3600 0 "")
'("distfiles" "local" "lost+found" "packages")
(list
(submanifest
"app-accessibility/Manifest"
14821
(list (checksum "SHA256" "1b5f") (checksum "SHA512" "f7eb")))
(submanifest
"eclass/Manifest.gz"
50812
(list (checksum "SHA256" "8c55") (checksum "SHA512" "2915"))))
'()
'()
'())
> (manifest #false '() '() (list (data "SphinxTrain-1.0.8.ebuild" 912 (list (checksum "SHA256" "f681") (checksum "SHA512" "0749"))) (data "metadata.xml" 664 (list (checksum "SHA256" "97c6") (checksum "SHA512" "1175"))) (data "files/gcc34.patch" 333 (list (checksum "SHA256" "c107") (checksum "SHA512" "9919")))) (list (dist "sphinxtrain-1.0.8.tar.gz" 8925803 (list (checksum "SHA256" "548e") (checksum "SHA512" "465d")))) '())
(manifest
#f
'()
'()
(list
(data
"SphinxTrain-1.0.8.ebuild"
912
(list (checksum "SHA256" "f681") (checksum "SHA512" "0749")))
(data
"metadata.xml"
664
(list (checksum "SHA256" "97c6") (checksum "SHA512" "1175")))
(data
"files/gcc34.patch"
333
(list (checksum "SHA256" "c107") (checksum "SHA512" "9919"))))
(list
(dist
"sphinxtrain-1.0.8.tar.gz"
8925803
(list (checksum "SHA256" "548e") (checksum "SHA512" "465d"))))
'())
11.2 Manifest conversion
(require pmsf/manifest/convert) | package: pmsf-manifest |
procedure
(manifest->string input-manifest) → string?
input-manifest : manifest?
procedure
(port->manifest input-port) → manifest?
input-port : input-port?
procedure
(string->manifest input-string) → manifest?
input-string : string?
> (string->manifest "DATA metadata.xml 664 SHA256 97c6 SHA512 1175")
(manifest
#f
'()
'()
(list
(data
"metadata.xml"
664
(list (checksum "SHA256" "97c6") (checksum "SHA512" "1175"))))
'()
'())