Merge remote-tracking branch 'origin/master' into flakes

This commit is contained in:
Eelco Dolstra 2019-11-08 15:22:54 +01:00
commit 2c1e05ae93
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 19 additions and 17 deletions

View file

@ -178,19 +178,6 @@ Strings argvToStrings(int argc, char * * argv)
return args;
}
Strings editorFor(Pos pos)
{
auto editor = getEnv("EDITOR", "cat");
auto args = tokenizeString<Strings>(editor);
if (pos.line > 0 && (
editor.find("emacs") != std::string::npos ||
editor.find("nano") != std::string::npos ||
editor.find("vim") != std::string::npos))
args.push_back(fmt("+%d", pos.line));
args.push_back(pos.file);
return args;
}
std::string renderLabels(const Strings & labels)
{
std::string res;

View file

@ -5,7 +5,6 @@
#include <memory>
#include "util.hh"
#include "nixexpr.hh"
namespace nix {
@ -242,9 +241,6 @@ public:
Strings argvToStrings(int argc, char * * argv);
/* Helper function to generate args that invoke $EDITOR on filename:lineno */
Strings editorFor(Pos pos);
/* Helper function for rendering argument labels. */
std::string renderLabels(const Strings & labels);

View file

@ -1,6 +1,7 @@
#include "command.hh"
#include "store-api.hh"
#include "derivations.hh"
#include "nixexpr.hh"
#include "profiles.hh"
namespace nix {
@ -82,6 +83,19 @@ void StorePathCommand::run(ref<Store> store)
run(store, *storePaths.begin());
}
Strings editorFor(const Pos & pos)
{
auto editor = getEnv("EDITOR", "cat");
auto args = tokenizeString<Strings>(editor);
if (pos.line > 0 && (
editor.find("emacs") != std::string::npos ||
editor.find("nano") != std::string::npos ||
editor.find("vim") != std::string::npos))
args.push_back(fmt("+%d", pos.line));
args.push_back(pos.file);
return args;
}
MixProfile::MixProfile()
{
mkFlag()

View file

@ -11,6 +11,7 @@ namespace nix {
extern std::string programPath;
class EvalState;
struct Pos;
class Store;
namespace flake {
@ -175,6 +176,10 @@ PathSet toDerivations(ref<Store> store,
std::vector<std::shared_ptr<Installable>> installables,
bool useDeriver = false);
/* Helper function to generate args that invoke $EDITOR on
filename:lineno. */
Strings editorFor(const Pos & pos);
struct MixProfile : virtual Args, virtual StoreCommand
{
std::optional<Path> profile;