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 logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from shutil import copyfileobj
|
|
||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
from urllib.request import urlopen
|
|
||||||
|
|
||||||
from exec.file import get_temp_dir, makedir
|
from exec.file import get_temp_dir, makedir
|
||||||
|
from utils import download_file
|
||||||
|
|
||||||
|
|
||||||
class PackageInfo:
|
class PackageInfo:
|
||||||
|
@ -77,17 +76,16 @@ class LocalPackage(BinaryPackage):
|
||||||
|
|
||||||
class RemotePackage(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
|
assert self.resolved_url and '.pkg.tar.' in self.resolved_url
|
||||||
url = f"{self.resolved_url}"
|
url = f"{self.resolved_url}"
|
||||||
assert url
|
assert url
|
||||||
|
|
||||||
dest_dir = dest_dir or get_temp_dir()
|
dest_dir = dest_dir or get_temp_dir()
|
||||||
makedir(dest_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}")
|
logging.info(f"Trying to download package {url}")
|
||||||
with urlopen(url) as fsrc, open(dest_file_path, 'wb') as fdst:
|
download_file(dest_file_path, url)
|
||||||
copyfileobj(fsrc, fdst)
|
|
||||||
logging.info(f"{self.filename} downloaded from repos")
|
logging.info(f"{self.filename} downloaded from repos")
|
||||||
return dest_file_path
|
return dest_file_path
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue