fabulously-optimized/CLI tools/MultiMC to 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

68 lines
2 KiB
Python

import re
import shutil
import zipfile
from pathlib import Path
mmc_path = Path.home() / "Documents/MultiMC/instances/Fabulously Optimized/"
git_path = Path.home() / "Documents/GitHub/fabulously-optimized/"
output_path = Path.home() / "Desktop/"
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")
def copy_to_archive(from_path: Path, to_path: str, archive_path: Path) -> None:
files = []
with zipfile.ZipFile(archive_path, "r") as archive:
for info in archive.infolist():
if info.filename != to_path:
files.append((info.filename, archive.read(info.filename)))
with zipfile.ZipFile(archive_path, "w") as archive:
for filename, content in files:
archive.writestr(filename, content)
archive.write(from_path, to_path)
# MultiMC to Git
version = "0.0.0"
pattern = re.compile(r"\d+\.\d+\.\d+-?\w*\.?\d*")
with open(mmc_path / "instance.cfg", "r") as file:
if match := pattern.search(file.read()):
version = match.group()
with open(git_path / "MultiMC/Fabulously Optimized x.y.z/instance.cfg", "r+") as file:
data = pattern.sub(version, file.read())
file.seek(0)
file.truncate()
file.write(data)
copy_to_archive(
git_path / "MultiMC/Fabulously Optimized x.y.z/instance.cfg",
f"Fabulously Optimized {version}/instance.cfg",
output_path / f"Fabulously Optimized {version}.zip",
)
copy_file(
mmc_path / "mmc-pack.json",
git_path / "MultiMC/Fabulously Optimized x.y.z/mmc-pack.json",
"MultiMC mmc-pack.json",
"Git",
)
copy_file(
mmc_path / "pack.png",
git_path / "MultiMC/Fabulously Optimized x.y.z/pack.png",
"MultiMC pack.png",
"Git",
)