db-sync-tool-kmi 2.11.8__py3-none-any.whl → 2.11.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of db-sync-tool-kmi might be problematic. Click here for more details.

db_sync_tool/info.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """
2
2
  Info script
3
3
  """
4
- __version__ = "2.11.8"
4
+ __version__ = "2.11.10"
5
5
  __pypi_package_url__ = "https://pypi.org/pypi/db-sync-tool-kmi"
6
6
  __homepage__ = "https://github.com/jackd248/db-sync-tool"
@@ -30,14 +30,16 @@ def check_configuration(client):
30
30
  _db_config = parse_database_credentials(json.loads(stdout)['DB'])
31
31
  elif '.env' in _path:
32
32
  # Try to parse settings from .env file
33
+ if 'db' not in system.config[client]:
34
+ system.config[client]['db'] = {}
35
+
33
36
  _db_config = {
34
- 'name': get_database_setting_from_env(client, 'TYPO3_CONF_VARS__DB__Connections__Default__dbname', system.config[client]['path']),
35
- 'host': get_database_setting_from_env(client, 'TYPO3_CONF_VARS__DB__Connections__Default__host', system.config[client]['path']),
36
- 'password': get_database_setting_from_env(client, 'TYPO3_CONF_VARS__DB__Connections__Default__password', system.config[client]['path']),
37
- 'port': get_database_setting_from_env(client, 'TYPO3_CONF_VARS__DB__Connections__Default__port', system.config[client]['path'])
38
- if get_database_setting_from_env(client, 'TYPO3_CONF_VARS__DB__Connections__Default__port',
39
- system.config[client]['path']) != '' else 3306,
40
- 'user': get_database_setting_from_env(client, 'TYPO3_CONF_VARS__DB__Connections__Default__user', system.config[client]['path']),
37
+ 'name': get_database_setting_from_env(client, system.config[client]['db'].get('name', 'TYPO3_CONF_VARS__DB__Connections__Default__dbname'), system.config[client]['path']),
38
+ 'host': get_database_setting_from_env(client, system.config[client]['db'].get('host', 'TYPO3_CONF_VARS__DB__Connections__Default__host'), system.config[client]['path']),
39
+ 'password': get_database_setting_from_env(client, system.config[client]['db'].get('password', 'TYPO3_CONF_VARS__DB__Connections__Default__password'), system.config[client]['path']),
40
+ 'port': get_database_setting_from_env(client, system.config[client]['db'].get('port', 'TYPO3_CONF_VARS__DB__Connections__Default__port'), system.config[client]['path'])
41
+ if get_database_setting_from_env(client, system.config[client]['db'].get('port', 'TYPO3_CONF_VARS__DB__Connections__Default__port'), system.config[client]['path']) != '' else 3306,
42
+ 'user': get_database_setting_from_env(client, system.config[client]['db'].get('user', 'TYPO3_CONF_VARS__DB__Connections__Default__user'), system.config[client]['path']),
41
43
  }
42
44
  elif 'AdditionalConfiguration.php' in _path:
43
45
  # Try to parse settings from AdditionalConfiguration.php file
@@ -94,12 +96,7 @@ def get_database_setting_from_additional_configuration(client, name, file):
94
96
  :param file: String
95
97
  :return:
96
98
  """
97
- return mode.run_command(
98
- helper.get_command(client, 'sed') +
99
- f' -nE "s/\'{name}\'.*=>.*\'(.*)\'.*$/\\1/p" {file}',
100
- client,
101
- True
102
- ).replace('\n', '').strip()
99
+ return helper.run_sed_command(client, f'"s/\'{name}\'.*=>.*\'(.*)\'.*$/\\1/p" {file}')
103
100
 
104
101
  def get_database_setting_from_env(client, name, file):
105
102
  """
@@ -110,9 +107,4 @@ def get_database_setting_from_env(client, name, file):
110
107
  :param file: String
111
108
  :return:
112
109
  """
113
- return mode.run_command(
114
- helper.get_command(client, 'sed') +
115
- f' -nE "s/{name}=(.*).*$/\\1/p" {file}',
116
- client,
117
- True
118
- ).replace('\n', '').strip()
110
+ return helper.run_sed_command(client, f'"s/{name}=(.*).*$/\\1/p" {file}')
@@ -351,3 +351,28 @@ def remove_surrounding_quotes(s):
351
351
  elif s.startswith("'") and s.endswith("'"):
352
352
  return s[1:-1]
353
353
  return s
354
+
355
+
356
+ def run_sed_command(client, command):
357
+ """
358
+ Executes a sed command on the specified client, trying -E first and falling back to -r if -E fails.
359
+
360
+ :param client: The client on which the sed command should be executed.
361
+ :param command: The sed command to execute (excluding the sed options).
362
+ :return: The result of the sed command as a cleaned string (with newlines removed).
363
+ """
364
+ # Check if the client supports -E or -r option for sed
365
+ option = mode.run_command(
366
+ f"echo | {get_command(client, 'sed')} -E '' >/dev/null 2>&1 && echo -E || (echo | {get_command(client, 'sed')} -r '' >/dev/null 2>&1 && echo -r)",
367
+ client,
368
+ True
369
+ )
370
+ # If neither option is supported, default to -E
371
+ if option == '':
372
+ option = '-E'
373
+
374
+ return mode.run_command(
375
+ f"{get_command(client, 'sed')} -n {option} {command}",
376
+ client,
377
+ True
378
+ ).strip().replace('\n', '')
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
2
- Name: db-sync-tool-kmi
3
- Version: 2.11.8
1
+ Metadata-Version: 2.4
2
+ Name: db_sync_tool-kmi
3
+ Version: 2.11.10
4
4
  Summary: Synchronize a database from and to host systems.
5
5
  Home-page: https://github.com/jackd248/db-sync-tool
6
6
  Author: Konrad Michalik
@@ -21,18 +21,31 @@ Classifier: Intended Audience :: Developers
21
21
  Requires-Python: >=3.5
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
- Requires-Dist: paramiko >=2.11
25
- Requires-Dist: future-fstrings >=1.2
26
- Requires-Dist: pyyaml >=6.0
27
- Requires-Dist: jsonschema >=4.2.1
28
- Requires-Dist: requests >=2.26.0
29
- Requires-Dist: semantic-version >=2.8.5
30
- Requires-Dist: yaspin >=2.1
24
+ Requires-Dist: paramiko>=2.11
25
+ Requires-Dist: future-fstrings>=1.2
26
+ Requires-Dist: pyyaml>=6.0
27
+ Requires-Dist: jsonschema>=4.2.1
28
+ Requires-Dist: requests>=2.26.0
29
+ Requires-Dist: semantic_version>=2.8.5
30
+ Requires-Dist: yaspin>=2.1
31
+ Dynamic: author
32
+ Dynamic: author-email
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: description-content-type
36
+ Dynamic: home-page
37
+ Dynamic: license
38
+ Dynamic: license-file
39
+ Dynamic: requires-dist
40
+ Dynamic: requires-python
41
+ Dynamic: summary
31
42
 
32
43
  # db sync tool
33
44
 
34
45
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/db_sync_tool-kmi)
35
46
  ![PyPI](https://img.shields.io/pypi/v/db_sync_tool-kmi)
47
+ ![Pepy Total Downloads](https://img.shields.io/pepy/dt/db-sync-tool-kmi)
48
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/db-sync-tool-kmi)
36
49
  [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/jackd248/db-sync-tool/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/jackd248/db-sync-tool/?branch=master)
37
50
  [![Build Status](https://scrutinizer-ci.com/g/jackd248/db-sync-tool/badges/build.png?b=master)](https://scrutinizer-ci.com/g/jackd248/db-sync-tool/build-status/master)
38
51
 
@@ -1,6 +1,6 @@
1
1
  db_sync_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  db_sync_tool/__main__.py,sha256=-pD13j2oYcKLhPprLy-LQeDCapj-FKrV3CDFHuYJu3g,11541
3
- db_sync_tool/info.py,sha256=oltTVrkzR98MZMAvIQoE1Y5IIg-VIr2BIY0E1LyPANc,165
3
+ db_sync_tool/info.py,sha256=CMcmX-Nd7Q__wSCT9pp8eRRQ2qloSNIeWPNK_inrHpo,166
4
4
  db_sync_tool/sync.py,sha256=WMfMts0M8z3oecI-HL07xG9ktbba8D8h7_U-8tBwizY,2087
5
5
  db_sync_tool/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  db_sync_tool/database/process.py,sha256=djOnNnwEswkmPbnJVsI3SvPSwzcZgAapighh3Ew5heE,8069
@@ -9,7 +9,7 @@ db_sync_tool/recipes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
9
9
  db_sync_tool/recipes/drupal.py,sha256=jAo1d3vxZ4UZ4Vzk308Dsmn1--ORmVO2g87l8OpQoPw,1505
10
10
  db_sync_tool/recipes/laravel.py,sha256=kp_gnKG0iyX_rzM0GW7Ca9ZPV3oGfEgGsLvJR_0pVDo,1175
11
11
  db_sync_tool/recipes/symfony.py,sha256=8ObIRXdoBG1MbWD7pd1TxUQboz5LUWbfzz3TX6F9G5w,2517
12
- db_sync_tool/recipes/typo3.py,sha256=7IejOtxASfskymG5jBFKmEzjl2sON3miKo_78Oqvi2g,4761
12
+ db_sync_tool/recipes/typo3.py,sha256=6vTulkViqbx_4ZyJV5kAHbSqifJK82uRKUTwRI5SqhU,4857
13
13
  db_sync_tool/recipes/wordpress.py,sha256=KN3HTzDbs5p2GD7vvTEhBl7xNOiy2YHrXhVLmiF_y_A,1468
14
14
  db_sync_tool/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  db_sync_tool/remote/client.py,sha256=wjcoQ1jp9i8PMO_6XX2XMXZCoLXy-ySA38seZtY-Sns,6553
@@ -18,7 +18,7 @@ db_sync_tool/remote/system.py,sha256=A9OIaypETMYx7frTKpXBgja-kXj7vSD6gJs8pUNpL_I
18
18
  db_sync_tool/remote/transfer.py,sha256=pYVsad4SKkJ0TgZHcyLc17Z9xK6exdyO7R8TBe4qQcQ,5872
19
19
  db_sync_tool/remote/utility.py,sha256=knTfzFKLdw2QsirvTfTz76XmckagKURKVBhjyREsQIo,3580
20
20
  db_sync_tool/utility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- db_sync_tool/utility/helper.py,sha256=zf1dPKgb5loLcOUtinjHdY9D_E6Gp5kLjbS8R-bRrxw,8905
21
+ db_sync_tool/utility/helper.py,sha256=--bUFgvLhHutqS__1B8nTZKjFnLZ0H8ZSmfnGlUy7n8,9837
22
22
  db_sync_tool/utility/info.py,sha256=8VdUMi3fsyykfMKKrmgUVoW9WEHPXbzPkVNHOIsNAMo,2976
23
23
  db_sync_tool/utility/log.py,sha256=OdJsVKyvJqQYl5NUzb5bIg1uhUJ9kj7c7kT9oKbGvo8,869
24
24
  db_sync_tool/utility/mode.py,sha256=DAkt-N5sYr6r2iTL_1sWu7_WHq04DNO4YjvBLkU3LeA,8588
@@ -26,9 +26,9 @@ db_sync_tool/utility/output.py,sha256=uoiWE7Pm8qv1a3vrBupZHE545d1uZSQHiLAUgkHofL
26
26
  db_sync_tool/utility/parser.py,sha256=DIdWVGyiltyH8akoWyyXLvUmFPR-nvBrnzDctPJzgKw,6624
27
27
  db_sync_tool/utility/system.py,sha256=G74lWGFcJNmLr0l6-GkZWmkk7q3icv4MccuHFKP_Vsw,18539
28
28
  db_sync_tool/utility/validation.py,sha256=qZNPgkTwV_kJTNtFh0OXb2FHrsWPnDA2W_fftWs5hZc,3530
29
- db_sync_tool_kmi-2.11.8.dist-info/LICENSE,sha256=o_R9gPKBRl4PQVcGCrWuTYsJQJ7uuQDcDaq-wapBUaw,1082
30
- db_sync_tool_kmi-2.11.8.dist-info/METADATA,sha256=EGxuPJ7XlzkctysvkkSIu8oqC7Wt1KvcHzx_ljWaiBE,12505
31
- db_sync_tool_kmi-2.11.8.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
32
- db_sync_tool_kmi-2.11.8.dist-info/entry_points.txt,sha256=bVk6UR_ejpfY2oSCoOii7uKQivwV9MtA6Tdqpjg4Yvo,60
33
- db_sync_tool_kmi-2.11.8.dist-info/top_level.txt,sha256=Uj5hJLhmdynFrBE0VnX0PfgIBC8_n7h2vgldqUQ-xfw,13
34
- db_sync_tool_kmi-2.11.8.dist-info/RECORD,,
29
+ db_sync_tool_kmi-2.11.10.dist-info/licenses/LICENSE,sha256=o_R9gPKBRl4PQVcGCrWuTYsJQJ7uuQDcDaq-wapBUaw,1082
30
+ db_sync_tool_kmi-2.11.10.dist-info/METADATA,sha256=AAEEQ38zBUdOYwgS6N3rg9rcbSwFNThjZKAJOTmyVTE,12877
31
+ db_sync_tool_kmi-2.11.10.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
32
+ db_sync_tool_kmi-2.11.10.dist-info/entry_points.txt,sha256=bVk6UR_ejpfY2oSCoOii7uKQivwV9MtA6Tdqpjg4Yvo,60
33
+ db_sync_tool_kmi-2.11.10.dist-info/top_level.txt,sha256=Uj5hJLhmdynFrBE0VnX0PfgIBC8_n7h2vgldqUQ-xfw,13
34
+ db_sync_tool_kmi-2.11.10.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5