mirror of
https://github.com/NixOS/nix.git
synced 2025-04-15 13:47:34 +00:00
Merge 13812a82b6
into bbfe39ef27
This commit is contained in:
commit
1907d911f6
@ -236,7 +236,8 @@ void ParseQuoted::operator()(std::shared_ptr<Parser> &state, Strings & r) {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
Strings parseShebangContent(std::string_view s) {
|
||||
Strings parseShebangContent(std::string_view s)
|
||||
{
|
||||
Strings result;
|
||||
std::shared_ptr<Parser> parserState(std::make_shared<ParseUnquoted>(ParseUnquoted(s)));
|
||||
|
||||
|
@ -96,6 +96,19 @@ static bool haveInternet()
|
||||
#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;
|
||||
|
||||
struct NixArgs : virtual MultiCommand, virtual MixCommonArgs, virtual RootArgs
|
||||
@ -485,10 +498,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 {
|
||||
auto isNixCommand = std::regex_search(programName, std::regex("nix$"));
|
||||
auto allowShebang = isNixCommand && argc > 1;
|
||||
args.parseCmdline(argvToStrings(argc, argv),allowShebang);
|
||||
args.parseCmdline(argvToStrings(argc, argv), allowShebang);
|
||||
} catch (UsageError &) {
|
||||
if (!args.helpRequested && !args.completions) throw;
|
||||
}
|
||||
@ -525,17 +544,8 @@ void mainWrapped(int argc, char * * argv)
|
||||
args.useNet = false;
|
||||
}
|
||||
|
||||
if (!args.useNet) {
|
||||
// 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;
|
||||
}
|
||||
if (!args.useNet)
|
||||
disableNet();
|
||||
|
||||
if (args.refresh) {
|
||||
settings.tarballTtl = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user