aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py')
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py b/infra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py
new file mode 100755
index 000000000000..2d7a18957184
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/build-support/rust/cargo-vendor-normalise.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+import sys
+
+import toml
+
+
+def quote(s: str) -> str:
+ escaped = s.replace('"', r"\"").replace("\n", r"\n").replace("\\", "\\\\")
+ return '"{}"'.format(escaped)
+
+
+def main() -> None:
+ data = toml.load(sys.stdin)
+
+ assert list(data.keys()) == ["source"]
+
+ # this value is non deterministic
+ data["source"]["vendored-sources"]["directory"] = "@vendor@"
+
+ lines = []
+ inner = data["source"]
+ for source, attrs in sorted(inner.items()):
+ lines.append("[source.{}]".format(quote(source)))
+ if source == "vendored-sources":
+ lines.append('"directory" = "@vendor@"\n')
+ else:
+ for key, value in sorted(attrs.items()):
+ attr = "{} = {}".format(quote(key), quote(value))
+ lines.append(attr)
+ lines.append("")
+
+ result = "\n".join(lines)
+ real = toml.loads(result)
+ assert real == data, "output = {} while input = {}".format(real, data)
+
+ print(result)
+
+
+if __name__ == "__main__":
+ main()