aboutsummaryrefslogtreecommitdiff
path: root/src/nix
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix')
-rw-r--r--src/nix/build.cc1
-rw-r--r--src/nix/command.hh8
-rw-r--r--src/nix/installables.cc4
3 files changed, 10 insertions, 3 deletions
diff --git a/src/nix/build.cc b/src/nix/build.cc
index d6a6a8071..07b6b2f02 100644
--- a/src/nix/build.cc
+++ b/src/nix/build.cc
@@ -3,7 +3,6 @@
#include "common-args.hh"
#include "shared.hh"
#include "store-api.hh"
-#include "primops/flake.hh"
using namespace nix;
diff --git a/src/nix/command.hh b/src/nix/command.hh
index a52fbb9ba..6d43261ac 100644
--- a/src/nix/command.hh
+++ b/src/nix/command.hh
@@ -108,6 +108,8 @@ struct InstallablesCommand : virtual Args, SourceExprCommand
void prepare() override;
+ virtual bool useDefaultInstallables() { return true; }
+
private:
std::vector<std::string> _installables;
@@ -119,14 +121,14 @@ struct InstallableCommand : virtual Args, SourceExprCommand
InstallableCommand()
{
- expectArg("installable", &_installable);
+ expectArg("installable", &_installable, true);
}
void prepare() override;
private:
- std::string _installable;
+ std::string _installable{"."};
};
/* A command that operates on zero or more store paths. */
@@ -146,6 +148,8 @@ public:
virtual void run(ref<Store> store, Paths storePaths) = 0;
void run(ref<Store> store) override;
+
+ bool useDefaultInstallables() override { return !all; }
};
/* A command that operates on exactly one store path. */
diff --git a/src/nix/installables.cc b/src/nix/installables.cc
index 9d87c70c3..c3ca87aa7 100644
--- a/src/nix/installables.cc
+++ b/src/nix/installables.cc
@@ -334,6 +334,10 @@ PathSet toDerivations(ref<Store> store,
void InstallablesCommand::prepare()
{
+ if (_installables.empty() && !file && useDefaultInstallables())
+ // FIXME: commands like "nix install" should not have a
+ // default, probably.
+ _installables.push_back(".");
installables = parseInstallables(getStore(), _installables);
}