diff options
-rw-r--r-- | pym/portage/__init__.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 3c4ceb819..de36e060b 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -3816,6 +3816,14 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks", pass if mystat is not None: + if stat.S_ISDIR(mystat.st_mode): + portage.util.writemsg_level( + ("!!! Unable to fetch file since " + \ + "a directory is in the way: \n" + \ + "!!! %s\n") % myfile_path, + level=logging.ERROR, noiselevel=-1) + return 0 + if mystat.st_size == 0: if distdir_writable: try: @@ -4065,9 +4073,11 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks", #resume mode: writemsg(">>> Resuming download...\n") locfetch=resumecommand + command_var = resumecommand_var else: #normal mode: locfetch=fetchcommand + command_var = fetchcommand_var writemsg_stdout(">>> Downloading '%s'\n" % \ re.sub(r'//(.+):.+@(.+)/',r'//\1:*password*@\2/', loc)) variables = { @@ -4115,6 +4125,25 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks", del e fetched = 0 else: + + if stat.S_ISDIR(mystat.st_mode): + # This can happen if FETCHCOMMAND erroneously + # contains wget's -P option where it should + # instead have -O. + portage.util.writemsg_level( + ("!!! The command specified in the " + \ + "%s variable appears to have\n!!! " + \ + "created a directory instead of a " + \ + "normal file.\n") % command_var, + level=logging.ERROR, noiselevel=-1) + portage.util.writemsg_level( + "!!! Refer to the make.conf(5) " + \ + "man page for information about how " + \ + "to\n!!! correctly specify " + \ + "FETCHCOMMAND and RESUMECOMMAND.\n", + level=logging.ERROR, noiselevel=-1) + return 0 + # no exception? file exists. let digestcheck() report # an appropriately for size or checksum errors |