mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
deploy: give useful error if rsync is not installed
This commit is contained in:
parent
ed50de055a
commit
00aa595f37
@ -277,6 +277,12 @@ def update_serverwebroot(serverwebroot, repo_section):
|
||||
has a low resolution timestamp
|
||||
|
||||
"""
|
||||
try:
|
||||
subprocess.run(['rsync', '--version'], capture_output=True, check=True)
|
||||
except Exception as e:
|
||||
raise FDroidException(
|
||||
_('rsync is missing or broken: {error}').format(error=e)
|
||||
) from e
|
||||
rsyncargs = ['rsync', '--archive', '--delete-after', '--safe-links']
|
||||
if not options.no_checksum:
|
||||
rsyncargs.append('--checksum')
|
||||
|
@ -18,6 +18,7 @@ if localmodule not in sys.path:
|
||||
|
||||
import fdroidserver.common
|
||||
import fdroidserver.deploy
|
||||
from fdroidserver.exception import FDroidException
|
||||
from testcommon import TmpCwd, mkdtemp
|
||||
|
||||
|
||||
@ -56,6 +57,13 @@ class DeployTest(unittest.TestCase):
|
||||
fdroidserver.deploy.update_serverwebroot(str(serverwebroot), 'repo')
|
||||
self.assertTrue(dest_apk.is_file())
|
||||
|
||||
@mock.patch.dict(os.environ, clear=True)
|
||||
def test_update_serverwebroot_no_rsync_error(self):
|
||||
os.environ['PATH'] = self.testdir
|
||||
os.chdir(self.testdir)
|
||||
with self.assertRaises(FDroidException):
|
||||
fdroidserver.deploy.update_serverwebroot('serverwebroot', 'repo')
|
||||
|
||||
def test_update_serverwebroot_make_cur_version_link(self):
|
||||
# setup parameters for this test run
|
||||
fdroidserver.deploy.options.no_checksum = True
|
||||
|
Loading…
Reference in New Issue
Block a user