fabulously-optimized/CLI tools/CurseForge to MultiMC-Git.py
Kirill Volozhanin 770a865d4b
CLI tools refactoring (#754)
Hi. Beautified and optimized some stuff without changing any logic and
functionality.

---------

Co-authored-by: Project D.D <RozeFound@gmail.com>
Co-authored-by: Madis Otenurm <Madis0@users.noreply.github.com>
2023-11-11 19:20:07 +01:00

61 lines
2.4 KiB
Python

import shutil
from pathlib import Path
minecraft_version = "1.20.2"
git_path = Path.home() / "Documents/GitHub/fabulously-optimized/"
packwiz_path = git_path / "Packwiz" / minecraft_version
cf_path = Path.home() / "curseforge/minecraft/Instances/Fabulously Optimized/"
mmc_path = Path.home() / "Documents/MultiMC/instances/Fabulously Optimized/minecraft/"
def remove_dir(path: Path, description: str) -> None:
if path.is_dir():
print(f"Deleting {description}")
shutil.rmtree(path)
print(f"Deleted {description}")
else:
print(f"Skipped {description} deletion, didn't exist")
def remove_file(path: Path, description: str) -> None:
if path.is_file():
print(f"Deleting {description}")
path.unlink()
print(f"Deleted {description}")
else:
print(f"Skipped {description} deletion, didn't exist")
def copy_dir(from_path: Path, to_path: Path, from_desc: str, to_desc: str) -> None:
if from_path.is_dir():
print(f"Copying {from_desc} to {to_desc}")
shutil.copytree(from_path, to_path, dirs_exist_ok=True)
print(f"Copied {from_desc} to {to_desc}")
else:
print(f"Skipped {from_desc} copying to {to_desc}, didn't exist")
def copy_file(from_path: Path, to_path: Path, from_desc: str, to_desc: str) -> None:
if from_path.is_file():
print(f"Copying {from_desc} to {to_desc}")
shutil.copy2(from_path, to_path)
print(f"Copied {from_desc} to {to_desc}")
else:
print(f"Skipped {from_desc} copying to {to_desc}, didn't exist")
# CurseForge to MultiMC
remove_dir(mmc_path / "mods", "MultiMC mods")
remove_dir(mmc_path / "config", "MultiMC configs")
remove_dir(mmc_path / "resourcepacks", "MultiMC resourcepacks")
remove_file(mmc_path / "options.txt", "MultiMC options.txt")
copy_dir(cf_path / "mods", mmc_path / "mods", "CurseForge mods", "MultiMC")
copy_dir(cf_path / "config", mmc_path / "config", "CurseForge configs", "MultiMC")
copy_dir(cf_path / "resourcepacks", mmc_path / "resourcepacks", "CurseForge resource packs", "MultiMC")
# CurseForge to Git
remove_dir(packwiz_path / "config", "Packwiz configs in Git")
copy_dir(cf_path / "config", packwiz_path / "config", "CurseForge configs", "Git (Packwiz)")
copy_dir(cf_path / "resourcepacks", packwiz_path / "resourcepacks", "CurseForge resource packs", "Git (Packwiz)")