feat(3p/lisp): add qbase64
Change-Id: I448b9241726c3bb08f14188775a66e1da1225e02 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5004 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
9cf42c25c3
commit
c1484c9f85
2 changed files with 70 additions and 0 deletions
13
third_party/lisp/qbase64/coreutils-base64.patch
vendored
Normal file
13
third_party/lisp/qbase64/coreutils-base64.patch
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/qbase64-test.lisp b/qbase64-test.lisp
|
||||
index 310fdf3..b92abb5 100644
|
||||
--- a/qbase64-test.lisp
|
||||
+++ b/qbase64-test.lisp
|
||||
@@ -14,7 +14,7 @@
|
||||
(with-open-temporary-file (tmp :direction :output :element-type '(unsigned-byte 8))
|
||||
(write-sequence bytes tmp)
|
||||
(force-output tmp)
|
||||
- (let* ((encoded (uiop:run-program `("base64" "-b" ,(format nil "~A" linebreak) "-i" ,(namestring tmp)) :output (if (zerop linebreak) '(:string :stripped t) :string)))
|
||||
+ (let* ((encoded (uiop:run-program `("base64" "-w" ,(format nil "~A" linebreak) ,(namestring tmp)) :output (if (zerop linebreak) '(:string :stripped t) :string) :error-output *error-output*))
|
||||
(length (length encoded)))
|
||||
(cond ((and (> length 1)
|
||||
(string= (subseq encoded (- length 2))
|
57
third_party/lisp/qbase64/default.nix
vendored
Normal file
57
third_party/lisp/qbase64/default.nix
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
{ depot, pkgs, ... }:
|
||||
|
||||
let
|
||||
src = pkgs.applyPatches {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "chaitanyagupta";
|
||||
repo = "qbase64";
|
||||
rev = "4ac193ed6b35a867ca453ed74acc128c9a077407";
|
||||
sha256 = "06daqqfdd51wkx0pyxgz7zq4ibzsqsgn3qs04jabx67gyybgnmjm";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# qbase64 expects macOS base64
|
||||
./coreutils-base64.patch
|
||||
];
|
||||
};
|
||||
|
||||
getSrcs = builtins.map (p: "${src}/${p}");
|
||||
|
||||
in
|
||||
|
||||
depot.nix.buildLisp.library {
|
||||
name = "qbase64";
|
||||
|
||||
srcs = getSrcs [
|
||||
"package.lisp"
|
||||
"utils.lisp"
|
||||
"stream-utils.lisp"
|
||||
"qbase64.lisp"
|
||||
];
|
||||
|
||||
deps = [
|
||||
depot.third_party.lisp.trivial-gray-streams
|
||||
depot.third_party.lisp.metabang-bind
|
||||
];
|
||||
|
||||
tests = {
|
||||
name = "qbase64-tests";
|
||||
|
||||
srcs = getSrcs [
|
||||
"qbase64-test.lisp"
|
||||
];
|
||||
|
||||
deps = [
|
||||
{
|
||||
sbcl = depot.nix.buildLisp.bundled "uiop";
|
||||
default = depot.nix.buildLisp.bundled "asdf";
|
||||
}
|
||||
depot.third_party.lisp.fiveam
|
||||
depot.third_party.lisp.cl-fad
|
||||
];
|
||||
|
||||
expression = ''
|
||||
(fiveam:run! '(qbase64-test::encoder 'qbase64-test::decoder))
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue