chiark / gitweb /
packaging: Provide update-build-deps script
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 14 Dec 2022 20:30:02 +0000 (20:30 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 14 Dec 2022 22:06:49 +0000 (22:06 +0000)
Doesn't quite DTRT yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
debian/update-build-deps [new file with mode: 0755]

diff --git a/debian/update-build-deps b/debian/update-build-deps
new file mode 100755 (executable)
index 0000000..fbeea84
--- /dev/null
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+use strict;
+
+open I, "debian/control" or die $!;
+open O, ">debian/control.new" or die $!;
+
+while (<I>) {
+  if (m{^\# debian/update-build-deps}i...m{^\S}) {
+    next if m{^ +librust[-a-z0-9]+,?\s*$};
+    if (m{^\S} && !m{^\#}i) {
+      local ($_);
+      open C, "Cargo.toml" or die $!;
+      while (<C>) {
+       next unless m{^\[dependencies\]} ... m{^\[};
+       next unless m{^\s*([-_0-9a-z+]+)\s*=};
+       my $p = $1;
+       next if m{path ?= ?\"};
+       $p =~ y/_/-/;
+       print O "    librust-$p-dev <!cargo-upstream>,\n" or die $!;
+      }
+      C->error and die $!;
+    }
+  }
+  print O or die $!;
+}
+
+I->error and die $!;
+close O or die $!;
+rename "debian/control.new", "debian/control" or die $!;