enhanced manifest manipulation

This commit is contained in:
Yhael S
2023-09-30 23:36:11 -05:00
parent 007ffc441c
commit 55270202ab
4 changed files with 38 additions and 40 deletions

View File

@@ -20,8 +20,6 @@ services:
- ./odoo/extra-addons:${EXTRA_ADDONS} - ./odoo/extra-addons:${EXTRA_ADDONS}
- ./odoo/custom-addons:${CUSTOM_ADDONS} - ./odoo/custom-addons:${CUSTOM_ADDONS}
- ./odoo/entrypoint.sh:/entrypoint.sh - ./odoo/entrypoint.sh:/entrypoint.sh
- ./odoo/odoorc.sh:/odoorc.sh
- ./odoo/third-party-addons.sh:/third-party-addons.sh
env_file: env_file:
- ./.env - ./.env
networks: networks:

View File

@@ -76,6 +76,7 @@ RUN if [ -n "$GITHUB_USER" ] && [ -n "$GITHUB_ACCESS_TOKEN" ]; then \
RUN mkdir -p ${THIRD_PARTY_ADDONS} && \ RUN mkdir -p ${THIRD_PARTY_ADDONS} && \
chown odoo:odoo -R ${THIRD_PARTY_ADDONS} chown odoo:odoo -R ${THIRD_PARTY_ADDONS}
COPY --chown=odoo:odoo ./odoo/fix-manifest.py /
COPY --chown=odoo:odoo ./odoo/third-party-addons.sh / COPY --chown=odoo:odoo ./odoo/third-party-addons.sh /
RUN /third-party-addons.sh && chown odoo:odoo ${THIRD_PARTY_ADDONS} RUN /third-party-addons.sh && chown odoo:odoo ${THIRD_PARTY_ADDONS}

34
odoo/fix-manifest.py Normal file
View File

@@ -0,0 +1,34 @@
import sys
# Define the path to the manifest file
manifest_file_path = sys.argv[1]
# Read the file content
with open(manifest_file_path, 'r') as file:
lines = file.readlines()
# Find the start and end index of the manifest dictionary
start_index = next(i for i, line in enumerate(lines) if line.strip().startswith('{'))
end_index = next(i for i, line in enumerate(lines) if line.strip().endswith('}'))
# Construct and evaluate the manifest dictionary
manifest_dict = eval(''.join(lines[start_index:end_index + 1]))
# Modify the manifest dictionary
manifest_dict['installable'] = True
manifest_dict['auto_install'] = True
# Construct the modified manifest string
modified_manifest_lines = ['{\n']
for key, value in manifest_dict.items():
modified_manifest_lines.append(f" '{key}': {repr(value)},\n")
modified_manifest_lines.append('}\n')
# Replace the manifest dictionary string in the content
lines[start_index:end_index + 1] = modified_manifest_lines
# Write the modified content back to the file
with open(manifest_file_path, 'w') as file:
file.writelines(lines)
print(f"Modified {manifest_file_path}")

View File

@@ -7,42 +7,7 @@ if [ ! -d "odoo-cloud-platform" ]; then
fi fi
# Define the path to the manifest file # Define the path to the manifest file
manifest_file_path="${THIRD_PARTY_ADDONS}/attachment_s3/__manifest__.py" s3_manifest="${THIRD_PARTY_ADDONS}/attachment_s3/__manifest__.py"
# Use Python to modify the manifest file # Modify the manifest file
python3 -c " python3 /fix-manifest.py $s3_manifest
filename = '${manifest_file_path}'
# Read the file content
with open(filename, 'r') as file:
lines = file.readlines()
# Find the start and end index of the manifest dictionary
start_index = next(i for i, line in enumerate(lines) if line.strip().startswith('{'))
end_index = next(i for i, line in enumerate(lines) if line.strip().endswith('}'))
# Construct and evaluate the manifest dictionary
manifest_dict = eval(''.join(lines[start_index:end_index + 1]))
# Modify the manifest dictionary
manifest_dict['installable'] = True
manifest_dict['auto_install'] = True
# Construct the modified manifest string
modified_manifest_lines = ['{\n']
for key, value in manifest_dict.items():
modified_manifest_lines.append(f' \'{key}\': {repr(value)},\n')
modified_manifest_lines.append('}\n')
# Replace the manifest dictionary string in the content
lines[start_index:end_index + 1] = modified_manifest_lines
# Write the modified content back to the file
with open(filename, 'w') as file:
file.writelines(lines)
"
echo "Modified $manifest_file_path"
# Optional: Cat the file to verify changes
cat $manifest_file_path