mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-09-14 06:52:39 +03:00
make fdroid server
check whether serverwebroot is set
Having serverwebroot optional in `fdroid server` means that it can support multiple methods of hosting, like cloud storage services. `fdroid server` can also then support multiple repo hosting options at the same time.
This commit is contained in:
parent
1ca7949bb1
commit
6b65257516
2 changed files with 32 additions and 26 deletions
|
@ -100,10 +100,10 @@ keyaliases['com.example.another.plugin'] = '@com.example.another'
|
||||||
# generated repo to the server that is it hosted on. It must end in the
|
# generated repo to the server that is it hosted on. It must end in the
|
||||||
# standard public repo name of "/fdroid", but can be in up to three levels of
|
# standard public repo name of "/fdroid", but can be in up to three levels of
|
||||||
# sub-directories (i.e. /var/www/packagerepos/fdroid).
|
# sub-directories (i.e. /var/www/packagerepos/fdroid).
|
||||||
serverwebroot = 'user@example:/var/www/fdroid'
|
#serverwebroot = 'user@example:/var/www/fdroid'
|
||||||
|
|
||||||
# If you want to force 'fdroid server' to use a non-standard serverwebroot
|
# If you want to force 'fdroid server' to use a non-standard serverwebroot
|
||||||
#nonstandardwebroot = True
|
#nonstandardwebroot = False
|
||||||
|
|
||||||
#Wiki details
|
#Wiki details
|
||||||
wiki_protocol = "http"
|
wiki_protocol = "http"
|
||||||
|
|
|
@ -50,19 +50,22 @@ def main():
|
||||||
logging.critical("The only commands currently supported are 'init' and 'update'")
|
logging.critical("The only commands currently supported are 'init' and 'update'")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
serverwebroot = config['serverwebroot'].rstrip('/').replace('//', '/')
|
if 'serverwebroot' in config:
|
||||||
host, fdroiddir = serverwebroot.split(':')
|
serverwebroot = config['serverwebroot'].rstrip('/').replace('//', '/')
|
||||||
serverrepobase = os.path.basename(fdroiddir)
|
host, fdroiddir = serverwebroot.split(':')
|
||||||
|
serverrepobase = os.path.basename(fdroiddir)
|
||||||
|
if serverrepobase != 'fdroid' and standardwebroot:
|
||||||
|
logging.error('serverwebroot does not end with "fdroid", '
|
||||||
|
+ 'perhaps you meant one of these:\n\t'
|
||||||
|
+ serverwebroot.rstrip('/') + '/fdroid\n\t'
|
||||||
|
+ serverwebroot.rstrip('/').rstrip(serverrepobase) + 'fdroid')
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
serverwebroot = None
|
||||||
if 'nonstandardwebroot' in config and config['nonstandardwebroot'] == True:
|
if 'nonstandardwebroot' in config and config['nonstandardwebroot'] == True:
|
||||||
standardwebroot = False
|
standardwebroot = False
|
||||||
else:
|
else:
|
||||||
standardwebroot = True
|
standardwebroot = True
|
||||||
if serverrepobase != 'fdroid' and standardwebroot:
|
|
||||||
print('ERROR: serverwebroot does not end with "fdroid", '
|
|
||||||
+ 'perhaps you meant one of these:\n\t'
|
|
||||||
+ serverwebroot.rstrip('/') + '/fdroid\n\t'
|
|
||||||
+ serverwebroot.rstrip('/').rstrip(serverrepobase) + 'fdroid')
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
repodirs = ['repo']
|
repodirs = ['repo']
|
||||||
if config['archive_older'] != 0:
|
if config['archive_older'] != 0:
|
||||||
|
@ -70,24 +73,27 @@ def main():
|
||||||
|
|
||||||
for repodir in repodirs:
|
for repodir in repodirs:
|
||||||
if args[0] == 'init':
|
if args[0] == 'init':
|
||||||
if subprocess.call(['ssh', '-v', host,
|
if serverwebroot == None:
|
||||||
|
logging.warn('No serverwebroot set! Edit your config.py to set it.')
|
||||||
|
elif subprocess.call(['ssh', '-v', host,
|
||||||
'mkdir -p', fdroiddir + '/' + repodir]) != 0:
|
'mkdir -p', fdroiddir + '/' + repodir]) != 0:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
elif args[0] == 'update':
|
elif args[0] == 'update':
|
||||||
index = os.path.join(repodir, 'index.xml')
|
if serverwebroot != None:
|
||||||
indexjar = os.path.join(repodir, 'index.jar')
|
index = os.path.join(repodir, 'index.xml')
|
||||||
if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
|
indexjar = os.path.join(repodir, 'index.jar')
|
||||||
'--exclude', index, '--exclude', indexjar,
|
if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
|
||||||
repodir, config['serverwebroot']]) != 0:
|
'--exclude', index, '--exclude', indexjar,
|
||||||
sys.exit(1)
|
repodir, config['serverwebroot']]) != 0:
|
||||||
if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
|
sys.exit(1)
|
||||||
index,
|
if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
|
||||||
config['serverwebroot'] + '/' + repodir]) != 0:
|
index,
|
||||||
sys.exit(1)
|
config['serverwebroot'] + '/' + repodir]) != 0:
|
||||||
if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
|
sys.exit(1)
|
||||||
indexjar,
|
if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
|
||||||
config['serverwebroot'] + '/' + repodir]) != 0:
|
indexjar,
|
||||||
sys.exit(1)
|
config['serverwebroot'] + '/' + repodir]) != 0:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue