* pisi will fallback to defined url/path in the pisi.conf if somehow the source archives
url can not be reached.
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
#buildno=True # necessary for generating build nos
|
#buildno=True # necessary for generating build nos
|
||||||
#buildhelper = None / ccache / icecream
|
#buildhelper = None / ccache / icecream
|
||||||
#compressionlevel = 7
|
#compressionlevel = 7
|
||||||
|
#fallback = "ftp://ftp.pardus.org.tr/pub/pisi/source"
|
||||||
#
|
#
|
||||||
#[directories]
|
#[directories]
|
||||||
#lib_dir = /var/lib/pisi
|
#lib_dir = /var/lib/pisi
|
||||||
@@ -75,6 +76,7 @@ class BuildDefaults:
|
|||||||
buildno = False
|
buildno = False
|
||||||
buildhelper = None
|
buildhelper = None
|
||||||
compressionlevel = 7
|
compressionlevel = 7
|
||||||
|
fallback = "ftp://ftp.pardus.org.tr/pub/pisi/source"
|
||||||
|
|
||||||
class DirectoriesDefaults:
|
class DirectoriesDefaults:
|
||||||
"Default values for [directories] section"
|
"Default values for [directories] section"
|
||||||
|
|||||||
+10
-2
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
# python standard library
|
# python standard library
|
||||||
|
|
||||||
from os.path import join
|
from os.path import join, basename
|
||||||
from os import access, R_OK
|
from os import access, R_OK
|
||||||
|
|
||||||
import gettext
|
import gettext
|
||||||
@@ -47,7 +47,15 @@ class SourceArchive:
|
|||||||
progress = ctx.ui.Progress
|
progress = ctx.ui.Progress
|
||||||
else:
|
else:
|
||||||
progress = None
|
progress = None
|
||||||
fetch_url(self.url, ctx.config.archives_dir(), progress)
|
try:
|
||||||
|
fetch_url(self.url, ctx.config.archives_dir(), progress)
|
||||||
|
except pisi.fetcher.FetchError:
|
||||||
|
# if archive can not be reached from the url, try the fallback
|
||||||
|
# address.
|
||||||
|
if ctx.config.values.build.fallback:
|
||||||
|
archive = basename(self.url.get_uri())
|
||||||
|
src = join(ctx.config.values.build.fallback, archive)
|
||||||
|
fetch_url(src, ctx.config.archives_dir(), progress)
|
||||||
|
|
||||||
def is_cached(self, interactive=True):
|
def is_cached(self, interactive=True):
|
||||||
if not access(self.archiveFile, R_OK):
|
if not access(self.archiveFile, R_OK):
|
||||||
|
|||||||
Reference in New Issue
Block a user