[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
254/376: nix-store -q: Check for conflicting flags
From: |
Ludovic Courtès |
Subject: |
254/376: nix-store -q: Check for conflicting flags |
Date: |
Wed, 28 Jan 2015 22:05:26 +0000 |
civodul pushed a commit to tag 1.8
in repository guix.
commit d04e1ff12aef86e3653c6fb3e114c0bb58c5d255
Author: Eelco Dolstra <address@hidden>
Date: Tue Oct 14 12:15:39 2014 +0200
nix-store -q: Check for conflicting flags
Fixes #364.
---
src/nix-store/nix-store.cc | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/nix-store/nix-store.cc b/src/nix-store/nix-store.cc
index 51839fa..c91bca9 100644
--- a/src/nix-store/nix-store.cc
+++ b/src/nix-store/nix-store.cc
@@ -265,15 +265,18 @@ static void printTree(const Path & path,
/* Perform various sorts of queries. */
static void opQuery(Strings opFlags, Strings opArgs)
{
- enum { qOutputs, qRequisites, qReferences, qReferrers
- , qReferrersClosure, qDeriver, qBinding, qHash, qSize
- , qTree, qGraph, qXml, qResolve, qRoots } query = qOutputs;
+ enum QueryType
+ { qDefault, qOutputs, qRequisites, qReferences, qReferrers
+ , qReferrersClosure, qDeriver, qBinding, qHash, qSize
+ , qTree, qGraph, qXml, qResolve, qRoots };
+ QueryType query = qDefault;
bool useOutput = false;
bool includeOutputs = false;
bool forceRealise = false;
string bindingName;
- foreach (Strings::iterator, i, opFlags)
+ foreach (Strings::iterator, i, opFlags) {
+ QueryType prev = query;
if (*i == "--outputs") query = qOutputs;
else if (*i == "--requisites" || *i == "-R") query = qRequisites;
else if (*i == "--references") query = qReferences;
@@ -298,6 +301,11 @@ static void opQuery(Strings opFlags, Strings opArgs)
else if (*i == "--force-realise" || *i == "--force-realize" || *i ==
"-f") forceRealise = true;
else if (*i == "--include-outputs") includeOutputs = true;
else throw UsageError(format("unknown flag ‘%1%’") % *i);
+ if (prev != qDefault && prev != query)
+ throw UsageError(format("query type ‘%1%’ conflicts with earlier
flag") % *i);
+ }
+
+ if (query == qDefault) query = qOutputs;
RunPager pager;
- 287/376: Don't use ADDR_LIMIT_3GB, (continued)
- 287/376: Don't use ADDR_LIMIT_3GB, Ludovic Courtès, 2015/01/28
- 255/376: binary download: Use $NIX_CURL_FLAGS, Ludovic Courtès, 2015/01/28
- 301/376: 'build-cache-failures' -> 'build-cache-failure' in nix.conf documentation., Ludovic Courtès, 2015/01/28
- 275/376: Revert "Revert "Revert "Temporarily disable darwin builds while hydra's darwin is borked""", Ludovic Courtès, 2015/01/28
- 302/376: Don't claim FreeBSD support, Ludovic Courtès, 2015/01/28
- 274/376: Don't pull in git when doing a nix-shell, Ludovic Courtès, 2015/01/28
- 247/376: mkList: Scrub better, Ludovic Courtès, 2015/01/28
- 248/376: Improved error message when encountering unsupported file types, Ludovic Courtès, 2015/01/28
- 295/376: nix-daemon: Call exit(), not _exit(), Ludovic Courtès, 2015/01/28
- 242/376: Add primop ‘attrValues’, Ludovic Courtès, 2015/01/28
- 254/376: nix-store -q: Check for conflicting flags,
Ludovic Courtès <=
- 265/376: Merge pull request #380 from shlevy/temp-disable-darwin, Ludovic Courtès, 2015/01/28
- 253/376: nix-channel: Add --rollback flag, Ludovic Courtès, 2015/01/28
- 289/376: Document functors, Ludovic Courtès, 2015/01/28
- 259/376: Export realiseContext in libnixexpr, Ludovic Courtès, 2015/01/28
- 284/376: SSH.pm: Print a friendlier message if connecting fails, Ludovic Courtès, 2015/01/28
- 278/376: Typo, Ludovic Courtès, 2015/01/28
- 292/376: Add a test for the binary tarball installer, Ludovic Courtès, 2015/01/28
- 296/376: Disable vacuuming the DB after garbage collection, Ludovic Courtès, 2015/01/28
- 298/376: Fix bad operator, Ludovic Courtès, 2015/01/28
- 270/376: Revert "Temporarily disable darwin builds while hydra's darwin is borked", Ludovic Courtès, 2015/01/28