chiark / gitweb /
nailing-cargo: Provide options to control --target separately
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Jun 2020 21:49:07 +0000 (22:49 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Jun 2020 21:49:07 +0000 (22:49 +0100)
`cargo fetch' needs --manifest-path but rejects --target.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
nailing-cargo

index 4cc9eac3314c9087698cea39b6eaf2df3a2d9f4c..cf53cef56da087fa9ad41cf1c7507a76f1cce2d2 100755 (executable)
 #
 #         The arguments are
 #             --manifest-path=<path/to/Cargo.toml>
-#             --locked --target-dir=target
+#             --locked
+#             --target-dir=target
+#
+#    -T | --no-cargo-target-arg
+#    -t | --cargo-target-arg
+#         Suppress --target (or un-suppress it).
+#         Only useful with -m.
 #
 # Cargo.nail:
 #
@@ -195,6 +201,7 @@ our $lockfile = "../.nailing-cargo.lock";
 
 our $cargo_lock_update;
 our $cargo_manifest_args;
+our $cargo_target_arg=1;
 our $alt_cargo_lock;
 
 our @configs;
@@ -505,7 +512,8 @@ sub addargs () {
 
   if ($cargo_manifest_args) {
     push @ARGV, "--manifest-path=${src_absdir}/Cargo.toml",
-      qw(--locked --target-dir=target);
+      qw(--locked);
+    push @ARGV, qw(--target-dir=target) if $cargo_target_arg;
   }
 
   if (defined $target) {
@@ -780,6 +788,8 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
        $cargo_lock_update= $1=~m/[a-z]/;
       } elsif (s{^-([mM])}{-}) {
        $cargo_manifest_args= $1=~m/[a-z]/;
+      } elsif (s{^-([tT])}{-}) {
+       $cargo_target_arg= $1=~m/[a-z]/;
       } else {
        die "$self: unknown short option(s) $_\n";
       }
@@ -790,6 +800,8 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
     $cargo_lock_update= !!$1;
   } elsif (m{^--(no-)?cargo-manifest-args}) {
     $cargo_manifest_args= !!$1;
+  } elsif (m{^--(no-)?cargo-target-arg}) {
+    $cargo_target_arg= !!$1;
   } else {
     die "$self: unknown long option $_\n";
   }