distro/package: acquire(): allow overriding filename and use utils.download_file()
This commit is contained in:
parent
a28550825f
commit
7666b91efc
1 changed files with 4 additions and 6 deletions
|
@ -1,11 +1,10 @@
|
|||
import logging
|
||||
import os
|
||||
|
||||
from shutil import copyfileobj
|
||||
from typing import Optional, Union
|
||||
from urllib.request import urlopen
|
||||
|
||||
from exec.file import get_temp_dir, makedir
|
||||
from utils import download_file
|
||||
|
||||
|
||||
class PackageInfo:
|
||||
|
@ -77,17 +76,16 @@ class LocalPackage(BinaryPackage):
|
|||
|
||||
class RemotePackage(BinaryPackage):
|
||||
|
||||
def acquire(self, dest_dir: Optional[str] = None) -> str:
|
||||
def acquire(self, dest_dir: Optional[str] = None, filename: Optional[str] = None) -> str:
|
||||
assert self.resolved_url and '.pkg.tar.' in self.resolved_url
|
||||
url = f"{self.resolved_url}"
|
||||
assert url
|
||||
|
||||
dest_dir = dest_dir or get_temp_dir()
|
||||
makedir(dest_dir)
|
||||
dest_file_path = os.path.join(dest_dir, self.filename)
|
||||
dest_file_path = os.path.join(dest_dir, filename or self.filename)
|
||||
|
||||
logging.info(f"Trying to download package {url}")
|
||||
with urlopen(url) as fsrc, open(dest_file_path, 'wb') as fdst:
|
||||
copyfileobj(fsrc, fdst)
|
||||
download_file(dest_file_path, url)
|
||||
logging.info(f"{self.filename} downloaded from repos")
|
||||
return dest_file_path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue