mirror of
https://github.com/NixOS/nix
synced 2025-06-25 06:31:14 +02:00
Merge 13812a82b6
into 918ac6b2fc
This commit is contained in:
commit
37120bcc69
2 changed files with 24 additions and 13 deletions
|
@ -236,7 +236,8 @@ void ParseQuoted::operator()(std::shared_ptr<Parser> &state, Strings & r) {
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Strings parseShebangContent(std::string_view s) {
|
Strings parseShebangContent(std::string_view s)
|
||||||
|
{
|
||||||
Strings result;
|
Strings result;
|
||||||
std::shared_ptr<Parser> parserState(std::make_shared<ParseUnquoted>(ParseUnquoted(s)));
|
std::shared_ptr<Parser> parserState(std::make_shared<ParseUnquoted>(ParseUnquoted(s)));
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,19 @@ static bool haveInternet()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void disableNet()
|
||||||
|
{
|
||||||
|
// FIXME: should check for command line overrides only.
|
||||||
|
if (!settings.useSubstitutes.overridden)
|
||||||
|
settings.useSubstitutes = false;
|
||||||
|
if (!settings.tarballTtl.overridden)
|
||||||
|
settings.tarballTtl = std::numeric_limits<unsigned int>::max();
|
||||||
|
if (!fileTransferSettings.tries.overridden)
|
||||||
|
fileTransferSettings.tries = 0;
|
||||||
|
if (!fileTransferSettings.connectTimeout.overridden)
|
||||||
|
fileTransferSettings.connectTimeout = 1;
|
||||||
|
}
|
||||||
|
|
||||||
std::string programPath;
|
std::string programPath;
|
||||||
|
|
||||||
struct NixArgs : virtual MultiCommand, virtual MixCommonArgs, virtual RootArgs
|
struct NixArgs : virtual MultiCommand, virtual MixCommonArgs, virtual RootArgs
|
||||||
|
@ -452,10 +465,16 @@ void mainWrapped(int argc, char * * argv)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (getEnv("NIX_GET_COMPLETIONS"))
|
||||||
|
/* Avoid fetching stuff during tab completion. We have to this
|
||||||
|
early because we haven't checked `haveInternet()` yet
|
||||||
|
(below). */
|
||||||
|
disableNet();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
auto isNixCommand = std::regex_search(programName, std::regex("nix$"));
|
auto isNixCommand = std::regex_search(programName, std::regex("nix$"));
|
||||||
auto allowShebang = isNixCommand && argc > 1;
|
auto allowShebang = isNixCommand && argc > 1;
|
||||||
args.parseCmdline(argvToStrings(argc, argv),allowShebang);
|
args.parseCmdline(argvToStrings(argc, argv), allowShebang);
|
||||||
} catch (UsageError &) {
|
} catch (UsageError &) {
|
||||||
if (!args.helpRequested && !args.completions) throw;
|
if (!args.helpRequested && !args.completions) throw;
|
||||||
}
|
}
|
||||||
|
@ -494,17 +513,8 @@ void mainWrapped(int argc, char * * argv)
|
||||||
args.useNet = false;
|
args.useNet = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!args.useNet) {
|
if (!args.useNet)
|
||||||
// FIXME: should check for command line overrides only.
|
disableNet();
|
||||||
if (!settings.useSubstitutes.overridden)
|
|
||||||
settings.useSubstitutes = false;
|
|
||||||
if (!settings.tarballTtl.overridden)
|
|
||||||
settings.tarballTtl = std::numeric_limits<unsigned int>::max();
|
|
||||||
if (!fileTransferSettings.tries.overridden)
|
|
||||||
fileTransferSettings.tries = 0;
|
|
||||||
if (!fileTransferSettings.connectTimeout.overridden)
|
|
||||||
fileTransferSettings.connectTimeout = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.refresh) {
|
if (args.refresh) {
|
||||||
settings.tarballTtl = 0;
|
settings.tarballTtl = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue