Correzioni su full path.

This commit is contained in:
Emiliano Vavassori 2023-01-07 22:52:11 +01:00
parent 0bea7a81bc
commit 8b5c87f801
1 changed files with 30 additions and 29 deletions

View File

@ -47,7 +47,7 @@ class Build(loaih.RemoteBuild):
self.portable = False self.portable = False
self.updatable = True self.updatable = True
self.sign = True self.sign = True
self.remoterepo = False self.repo_type = 'local'
self.remote_host = '' self.remote_host = ''
self.remote_path = '' self.remote_path = ''
self.storage_path = '/mnt/appimage' self.storage_path = '/mnt/appimage'
@ -126,11 +126,22 @@ class Build(loaih.RemoteBuild):
if self.portable: if self.portable:
self.relative_path.append('portable') self.relative_path.append('portable')
fullpath_arr = self.storage_path.split('/') # Fullpath might be intended two ways:
# Joining relative path only if it is not null if self.repo_type == 'remote':
if len(self.relative_path) > 0: # Repository is remote
fullpath_arr.extend(self.relative_path) # we build full_path as it is absolute to the root of the
self.full_path = re.sub(r"/+", '/', str.join('/', fullpath_arr)) # storage_path.
self.full_path = '/'
if len(self.relative_path) >= 1:
self.full_path += str.join('/', self.relative_path)
else:
# Repository is local
# If it is remote or if it is local
fullpath_arr = self.storage_path.split('/')
# Joining relative path only if it is not null
if len(self.relative_path) > 0:
fullpath_arr.extend(self.relative_path)
self.full_path = re.sub(r"/+", '/', str.join('/', fullpath_arr))
def check(self): def check(self):
@ -138,30 +149,27 @@ class Build(loaih.RemoteBuild):
print("--- Check Phase ---") print("--- Check Phase ---")
# let's check here if we are on a remote repo or local.
if self.storage_path.startswith("http"):
# Final repository is remote
self.repo_type = 'remote'
else:
self.repo_type = 'local'
if len(self.appimagefilename) != 2: if len(self.appimagefilename) != 2:
self.calculate() self.calculate()
for arch in self.arch: for arch in self.arch:
# First, check if by metadata the repo is remote or not. # First, check if by metadata the repo is remote or not.
if self.remoterepo or 'http' in self.storage_path: if self.repo_type == 'remote':
self.remoterepo = True
# Remote storage. I have to query a remote site to know if it # Remote storage. I have to query a remote site to know if it
# was already built. # was already built.
name = self.appimagefilename[arch] name = self.appimagefilename[arch]
if len(self.relative_path) == 0: url = self.storage_path.rstrip('/') + self.full_path + '/' + name
path_arr = [ self.storage_path, '' ]
elif len(self.relative_path) == 1:
path_arr = [ self.storage_path, self.relative_path[0], '' ]
else:
path_arr = self.relative_path
path_arr.insert(0, self.storage_path)
path = str.join('/', path_arr)
matching = [] matching = []
try: try:
with urllib.request.urlopen(path) as url: with urllib.request.urlopen(url) as response:
matching = etree.HTML(url.read()).xpath( matching = etree.HTML(response.read()).xpath(
f"//a[contains(@href, '{name}')]/@href" f"//a[contains(@href, '{name}')]/@href"
) )
@ -436,17 +444,10 @@ class Build(loaih.RemoteBuild):
os.chdir(self.appnamedir) os.chdir(self.appnamedir)
# Two cases here: local and remote storage_path. # Two cases here: local and remote storage_path.
if self.remoterepo: if self.repo_type == 'remote':
# Remote first. # Remote first.
# Build destination directory # Build destination directory
if len(self.relative_path) == 0: remotepath = self.remote_path.rstrip('/') + self.full_path
remotepath = str.join('/', [ self.remote_path, '' ])
elif len(self.relative_path) == 1:
remotepath = str.join('/', [ self.remote_path, self.relative_path[0], '' ])
else:
path_arr = self.relative_path
path_arr.insert(0, self.remote_path)
remotepath = str.join('/', path_arr)
try: try:
subprocess.run( subprocess.run(
r"rsync -rlIvz --munge-links *.AppImage* " + r"rsync -rlIvz --munge-links *.AppImage* " +