aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-04-25 15:18:05 +0200
committerEelco Dolstra <edolstra@gmail.com>2017-04-25 15:18:05 +0200
commitd48c973ece20875391bebde3c167d6e0cc1e666e (patch)
tree61e831c1c3b013918694539ffe98243c7218ebc9
parent0b6220fbd6869ec9f48094b85350ef2ea0429b14 (diff)
Set default installable
Thus $ nix build -f foo.nix will build foo.nix. And $ nix build will build default.nix. However, this may not be a good idea because it's kind of inconsistent, given that "nix build foo" will build the "foo" attribute from the default installation source (i.e. the synthesis of $NIX_PATH), rather than ./default.nix. So I may revert this.
-rw-r--r--src/nix/installables.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/nix/installables.cc b/src/nix/installables.cc
index 45517443c..ff345c45d 100644
--- a/src/nix/installables.cc
+++ b/src/nix/installables.cc
@@ -181,6 +181,12 @@ std::vector<std::shared_ptr<Installable>> InstallablesCommand::parseInstallables
{
std::vector<std::shared_ptr<Installable>> result;
+ if (installables.empty()) {
+ if (file == "")
+ file = ".";
+ installables = Strings{""};
+ }
+
for (auto & installable : installables) {
if (installable.find("/") != std::string::npos) {
@@ -198,7 +204,7 @@ std::vector<std::shared_ptr<Installable>> InstallablesCommand::parseInstallables
else if (installable.compare(0, 1, "(") == 0)
result.push_back(std::make_shared<InstallableExpr>(*this, installable));
- else if (std::regex_match(installable, attrPathRegex))
+ else if (installable == "" || std::regex_match(installable, attrPathRegex))
result.push_back(std::make_shared<InstallableAttrPath>(*this, installable));
else