diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-04-25T13·18+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-04-25T13·18+0200 |
commit | d48c973ece20875391bebde3c167d6e0cc1e666e (patch) | |
tree | 61e831c1c3b013918694539ffe98243c7218ebc9 | |
parent | 0b6220fbd6869ec9f48094b85350ef2ea0429b14 (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.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/nix/installables.cc b/src/nix/installables.cc index 45517443ca32..ff345c45d8dd 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 |