mirror of
https://github.com/odoocker/odoocker
synced 2025-11-04 15:19:22 +01:00
enhanced manifest manipulation
This commit is contained in:
@@ -76,6 +76,7 @@ RUN if [ -n "$GITHUB_USER" ] && [ -n "$GITHUB_ACCESS_TOKEN" ]; then \
|
||||
RUN mkdir -p ${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 /
|
||||
RUN /third-party-addons.sh && chown odoo:odoo ${THIRD_PARTY_ADDONS}
|
||||
|
||||
|
||||
34
odoo/fix-manifest.py
Normal file
34
odoo/fix-manifest.py
Normal 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}")
|
||||
@@ -7,42 +7,7 @@ if [ ! -d "odoo-cloud-platform" ]; then
|
||||
fi
|
||||
|
||||
# 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
|
||||
python3 -c "
|
||||
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
|
||||
# Modify the manifest file
|
||||
python3 /fix-manifest.py $s3_manifest
|
||||
|
||||
Reference in New Issue
Block a user