mirror of
https://github.com/NixOS/nix
synced 2025-06-24 22:11:15 +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);
|
||||
}
|
||||
|
||||
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)));
|
||||
|
||||
|
|
|
@ -84,6 +84,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
|
||||
|
@ -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 {
|
||||
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;
|
||||
}
|
||||
|
@ -494,17 +513,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…
Add table
Add a link
Reference in a new issue