Skip to content

Instantly share code, notes, and snippets.

@hn-support
Last active June 10, 2020 19:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hn-support/faf03c5898f5553b7fd9f4059709aef4 to your computer and use it in GitHub Desktop.
Save hn-support/faf03c5898f5553b7fd9f4059709aef4 to your computer and use it in GitHub Desktop.
Change your base_urls for Magento 1 staging environment on hypernode
#!/usr/bin/env python
"""
Set the base-urls for your Magento 1 staging environment by copying and adjusting the base-urls from your production site.
To use, download the file and make it executable. Then run:
./change_magento1_staging_baseurls.py
After use, check your base-urls by issuing:
n98-magerun sys:store:config:base-url:list
This script requires n98-magerun.
"""
from __future__ import print_function
import json
import subprocess
import os
import sys
def stagify(url, url_type='secure'):
while url.endswith('/'):
url = url.rstrip('/')
if url.startswith('https://'):
return '{}:8443/'.format(url)
return '{}:8888/'.format(url)
def set_base_url(data, store_type):
scope_id = data['Scope-ID']
scope = data['Scope']
path = data['Path']
value = stagify(data['Value'], url_type=store_type)
command = '/usr/local/bin/n98-magerun --root-dir=/data/web/staging config:set --scope="{}" --scope-id="{}" "{}" "{}"'.format(scope, scope_id, path, value)
subprocess.check_output(command, shell=True)
def main():
if not os.path.isfile('/data/web/public/app/Mage.php') or not os.path.isfile('/data/web/staging/app/Mage.php'):
print("No magento 1 installation found in /data/web/public or in /data/web/staging", file=sys.stderr)
sys.exit(1)
for store_type, store_front in ('unsecure', 'web/unsecure/base_url'), ('secure', 'web/secure/base_url'):
command = '/usr/local/bin/n98-magerun --root-dir=/data/web/public config:get "{}" --format=json'.format(store_front)
magerun_json = subprocess.check_output(command, shell=True)
magerun_dict = json.loads(magerun_json)
for value in magerun_dict.values():
set_base_url(data=value, store_type=store_type)
subprocess.check_output('/usr/local/bin/n98-magerun --root-dir=/data/web/staging cache:flush', shell=True)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment