about summary refs log tree commit diff
path: root/third_party/nix/src/nix/sigs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/nix/src/nix/sigs.cc')
-rw-r--r--third_party/nix/src/nix/sigs.cc196
1 files changed, 90 insertions, 106 deletions
diff --git a/third_party/nix/src/nix/sigs.cc b/third_party/nix/src/nix/sigs.cc
index b1825c412c..da453d1486 100644
--- a/third_party/nix/src/nix/sigs.cc
+++ b/third_party/nix/src/nix/sigs.cc
@@ -1,149 +1,133 @@
+#include <atomic>
 #include "command.hh"
 #include "shared.hh"
 #include "store-api.hh"
 #include "thread-pool.hh"
 
-#include <atomic>
-
 using namespace nix;
 
-struct CmdCopySigs : StorePathsCommand
-{
-    Strings substituterUris;
-
-    CmdCopySigs()
-    {
-        mkFlag()
-            .longName("substituter")
-            .shortName('s')
-            .labels({"store-uri"})
-            .description("use signatures from specified store")
-            .arity(1)
-            .handler([&](std::vector<std::string> ss) { substituterUris.push_back(ss[0]); });
-    }
+struct CmdCopySigs : StorePathsCommand {
+  Strings substituterUris;
 
-    std::string name() override
-    {
-        return "copy-sigs";
-    }
+  CmdCopySigs() {
+    mkFlag()
+        .longName("substituter")
+        .shortName('s')
+        .labels({"store-uri"})
+        .description("use signatures from specified store")
+        .arity(1)
+        .handler([&](std::vector<std::string> ss) {
+          substituterUris.push_back(ss[0]);
+        });
+  }
 
-    std::string description() override
-    {
-        return "copy path signatures from substituters (like binary caches)";
-    }
+  std::string name() override { return "copy-sigs"; }
+
+  std::string description() override {
+    return "copy path signatures from substituters (like binary caches)";
+  }
 
-    void run(ref<Store> store, Paths storePaths) override
-    {
-        if (substituterUris.empty())
-            throw UsageError("you must specify at least one substituter using '-s'");
+  void run(ref<Store> store, Paths storePaths) override {
+    if (substituterUris.empty())
+      throw UsageError("you must specify at least one substituter using '-s'");
 
-        // FIXME: factor out commonality with MixVerify.
-        std::vector<ref<Store>> substituters;
-        for (auto & s : substituterUris)
-            substituters.push_back(openStore(s));
+    // FIXME: factor out commonality with MixVerify.
+    std::vector<ref<Store>> substituters;
+    for (auto& s : substituterUris) substituters.push_back(openStore(s));
 
-        ThreadPool pool;
+    ThreadPool pool;
 
-        std::string doneLabel = "done";
-        std::atomic<size_t> added{0};
+    std::string doneLabel = "done";
+    std::atomic<size_t> added{0};
 
-        //logger->setExpected(doneLabel, storePaths.size());
+    // logger->setExpected(doneLabel, storePaths.size());
 
-        auto doPath = [&](const Path & storePath) {
-            //Activity act(*logger, lvlInfo, format("getting signatures for '%s'") % storePath);
+    auto doPath = [&](const Path& storePath) {
+      // Activity act(*logger, lvlInfo, format("getting signatures for '%s'") %
+      // storePath);
 
-            checkInterrupt();
+      checkInterrupt();
 
-            auto info = store->queryPathInfo(storePath);
+      auto info = store->queryPathInfo(storePath);
 
-            StringSet newSigs;
+      StringSet newSigs;
 
-            for (auto & store2 : substituters) {
-                try {
-                    auto info2 = store2->queryPathInfo(storePath);
+      for (auto& store2 : substituters) {
+        try {
+          auto info2 = store2->queryPathInfo(storePath);
 
-                    /* Don't import signatures that don't match this
-                       binary. */
-                    if (info->narHash != info2->narHash ||
-                        info->narSize != info2->narSize ||
-                        info->references != info2->references)
-                        continue;
+          /* Don't import signatures that don't match this
+             binary. */
+          if (info->narHash != info2->narHash ||
+              info->narSize != info2->narSize ||
+              info->references != info2->references)
+            continue;
 
-                    for (auto & sig : info2->sigs)
-                        if (!info->sigs.count(sig))
-                            newSigs.insert(sig);
-                } catch (InvalidPath &) {
-                }
-            }
+          for (auto& sig : info2->sigs)
+            if (!info->sigs.count(sig)) newSigs.insert(sig);
+        } catch (InvalidPath&) {
+        }
+      }
 
-            if (!newSigs.empty()) {
-                store->addSignatures(storePath, newSigs);
-                added += newSigs.size();
-            }
+      if (!newSigs.empty()) {
+        store->addSignatures(storePath, newSigs);
+        added += newSigs.size();
+      }
 
-            //logger->incProgress(doneLabel);
-        };
+      // logger->incProgress(doneLabel);
+    };
 
-        for (auto & storePath : storePaths)
-            pool.enqueue(std::bind(doPath, storePath));
+    for (auto& storePath : storePaths)
+      pool.enqueue(std::bind(doPath, storePath));
 
-        pool.process();
+    pool.process();
 
-        printInfo(format("imported %d signatures") % added);
-    }
+    printInfo(format("imported %d signatures") % added);
+  }
 };
 
 static RegisterCommand r1(make_ref<CmdCopySigs>());
 
-struct CmdSignPaths : StorePathsCommand
-{
-    Path secretKeyFile;
-
-    CmdSignPaths()
-    {
-        mkFlag()
-            .shortName('k')
-            .longName("key-file")
-            .label("file")
-            .description("file containing the secret signing key")
-            .dest(&secretKeyFile);
-    }
+struct CmdSignPaths : StorePathsCommand {
+  Path secretKeyFile;
 
-    std::string name() override
-    {
-        return "sign-paths";
-    }
+  CmdSignPaths() {
+    mkFlag()
+        .shortName('k')
+        .longName("key-file")
+        .label("file")
+        .description("file containing the secret signing key")
+        .dest(&secretKeyFile);
+  }
 
-    std::string description() override
-    {
-        return "sign the specified paths";
-    }
+  std::string name() override { return "sign-paths"; }
 
-    void run(ref<Store> store, Paths storePaths) override
-    {
-        if (secretKeyFile.empty())
-            throw UsageError("you must specify a secret key file using '-k'");
+  std::string description() override { return "sign the specified paths"; }
 
-        SecretKey secretKey(readFile(secretKeyFile));
+  void run(ref<Store> store, Paths storePaths) override {
+    if (secretKeyFile.empty())
+      throw UsageError("you must specify a secret key file using '-k'");
 
-        size_t added{0};
+    SecretKey secretKey(readFile(secretKeyFile));
 
-        for (auto & storePath : storePaths) {
-            auto info = store->queryPathInfo(storePath);
+    size_t added{0};
 
-            auto info2(*info);
-            info2.sigs.clear();
-            info2.sign(secretKey);
-            assert(!info2.sigs.empty());
+    for (auto& storePath : storePaths) {
+      auto info = store->queryPathInfo(storePath);
 
-            if (!info->sigs.count(*info2.sigs.begin())) {
-                store->addSignatures(storePath, info2.sigs);
-                added++;
-            }
-        }
+      auto info2(*info);
+      info2.sigs.clear();
+      info2.sign(secretKey);
+      assert(!info2.sigs.empty());
 
-        printInfo(format("added %d signatures") % added);
+      if (!info->sigs.count(*info2.sigs.begin())) {
+        store->addSignatures(storePath, info2.sigs);
+        added++;
+      }
     }
+
+    printInfo(format("added %d signatures") % added);
+  }
 };
 
 static RegisterCommand r3(make_ref<CmdSignPaths>());