first commit
This commit is contained in:
70
copy_script.py
Normal file
70
copy_script.py
Normal file
@@ -0,0 +1,70 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
source_dir = "/Users/hamzaaleghwairyeen/development/App"
|
||||
target_dir = "/Users/hamzaaleghwairyeen/development/App/Siro"
|
||||
|
||||
mappings = [
|
||||
{"src": "Intaleq", "dst": "siro_rider", "old_pkg": "Intaleq", "new_pkg": "siro_rider"},
|
||||
{"src": "intaleq_driver", "dst": "siro_driver", "old_pkg": "sefer_driver", "new_pkg": "siro_driver"},
|
||||
{"src": "intaleq_admin", "dst": "siro_admin", "old_pkg": "sefer_admin1", "new_pkg": "siro_admin"},
|
||||
{"src": "service_intaleq", "dst": "siro_service", "old_pkg": "service", "new_pkg": "siro_service"}
|
||||
]
|
||||
|
||||
def copy_and_replace():
|
||||
for m in mappings:
|
||||
src_path = os.path.join(source_dir, m['src'])
|
||||
dst_path = os.path.join(target_dir, m['dst'])
|
||||
|
||||
# 1. Delete destination lib and assets if exist
|
||||
for folder in ['lib', 'assets', 'secure_string_operations']:
|
||||
d_folder = os.path.join(dst_path, folder)
|
||||
if os.path.exists(d_folder):
|
||||
shutil.rmtree(d_folder)
|
||||
|
||||
# 2. Copy lib and assets
|
||||
for folder in ['lib', 'assets', 'secure_string_operations']:
|
||||
s_folder = os.path.join(src_path, folder)
|
||||
d_folder = os.path.join(dst_path, folder)
|
||||
if os.path.exists(s_folder):
|
||||
shutil.copytree(s_folder, d_folder)
|
||||
|
||||
# 3. Copy pubspec.yaml
|
||||
s_pubspec = os.path.join(src_path, "pubspec.yaml")
|
||||
d_pubspec = os.path.join(dst_path, "pubspec.yaml")
|
||||
if os.path.exists(s_pubspec):
|
||||
shutil.copy2(s_pubspec, d_pubspec)
|
||||
|
||||
# 4. Replace package name in pubspec.yaml
|
||||
if os.path.exists(d_pubspec):
|
||||
with open(d_pubspec, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
# replace name: old_pkg with name: new_pkg
|
||||
import re
|
||||
content = re.sub(rf'^name:\s*{m["old_pkg"]}\s*$', f'name: {m["new_pkg"]}', content, flags=re.MULTILINE)
|
||||
with open(d_pubspec, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
# 5. Replace imports in lib and test directories
|
||||
for root_folder in ['lib', 'test']:
|
||||
root_path = os.path.join(dst_path, root_folder)
|
||||
if not os.path.exists(root_path): continue
|
||||
|
||||
for root, dirs, files in os.walk(root_path):
|
||||
for file in files:
|
||||
if file.endswith('.dart'):
|
||||
file_path = os.path.join(root, file)
|
||||
try:
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
new_content = content.replace(f"package:{m['old_pkg']}/", f"package:{m['new_pkg']}/")
|
||||
if new_content != content:
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(new_content)
|
||||
except Exception as e:
|
||||
print(f"Error reading {file_path}: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
copy_and_replace()
|
||||
print("Done")
|
||||
Reference in New Issue
Block a user