mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-09-13 14:32:28 +03:00
deploy: give useful error if rsync is not installed
This commit is contained in:
parent
ed50de055a
commit
00aa595f37
2 changed files with 14 additions and 0 deletions
|
@ -277,6 +277,12 @@ def update_serverwebroot(serverwebroot, repo_section):
|
||||||
has a low resolution timestamp
|
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']
|
rsyncargs = ['rsync', '--archive', '--delete-after', '--safe-links']
|
||||||
if not options.no_checksum:
|
if not options.no_checksum:
|
||||||
rsyncargs.append('--checksum')
|
rsyncargs.append('--checksum')
|
||||||
|
|
|
@ -18,6 +18,7 @@ if localmodule not in sys.path:
|
||||||
|
|
||||||
import fdroidserver.common
|
import fdroidserver.common
|
||||||
import fdroidserver.deploy
|
import fdroidserver.deploy
|
||||||
|
from fdroidserver.exception import FDroidException
|
||||||
from testcommon import TmpCwd, mkdtemp
|
from testcommon import TmpCwd, mkdtemp
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,6 +57,13 @@ class DeployTest(unittest.TestCase):
|
||||||
fdroidserver.deploy.update_serverwebroot(str(serverwebroot), 'repo')
|
fdroidserver.deploy.update_serverwebroot(str(serverwebroot), 'repo')
|
||||||
self.assertTrue(dest_apk.is_file())
|
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):
|
def test_update_serverwebroot_make_cur_version_link(self):
|
||||||
# setup parameters for this test run
|
# setup parameters for this test run
|
||||||
fdroidserver.deploy.options.no_checksum = True
|
fdroidserver.deploy.options.no_checksum = True
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue