lobotomy-modpack/installer.py

110 lines
4.1 KiB
Python

import wget
import tarfile
import os
import platform
import time
import shutil
from pathlib import Path
#detect operating system and find home, minecraft, & mod folders
homedir = os.path.expanduser("~")
os.chdir(homedir)
# `global` sets these variables to exist outside of the scope of these specific `if` statements.
global mcfolder
global modfolder
if platform.system() == "Linux":
print("Operating system detected: Linux")
os.chdir(homedir + '/.minecraft')
mcfolder = Path.cwd()
modfolder = mcfolder + '/mods'
elif platform.system() == "Windows":
print("Operating system detected: Windows")
os.chdir("AppData/Roaming/.minecraft/mods")
mcfolder = Path.cwd()
modfolder = mcfolder + '/mods'
os.chdir(mcfolder)
print("Changed current working directory to '" + str(mcfolder) + "'")
time.sleep(2)
# delete previous mods
# WARN: THIS DOESN'T CURRENTLY BACK UP EXISTING MODS.
def del_dir():
try:
shutil.rmtree(str("mods"))
print("Cleared previous mods.")
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))
del_dir()
os.mkdir(str("mods"))
# download mod archive from https://git.adolin.xyz/saru and extract
#this snippet below defines a tar extract FUNCTION
def extract_tar_archive(tar_file_path, extract_to):
with tarfile.open(tar_file_path, 'r') as tar:
tar.extractall(extract_to)
print("Starting install...")
print("Fetching mods...")
# #this is the SIMPLEST implementation of curl i have ever seen i just NUTTED SO FUCKING HARD
# take the last one back, this is fucking insane. wget the fucking goat. who knew windows package manager was so damn cool?
wget.download('https://git.adolin.xyz/saru/lobotomy-mod-pack/raw/branch/main/mods.tar.gz')
print("Extracting and writing to disk...")
tar_file_path = 'mods.tar.gz'
extract_to = 'mods'
extract_tar_archive(tar_file_path, extract_to)
def ascii():
print()
print()
print(" :+++++=")
print(" -++++++.")
print(" :++++++. .")
print(" .++++++. -=. -: .::")
print(" =+++++. :=. =- .--:. -")
print(" =+++++. .+ =: -=. :=")
print(" =+++++. +. :.=* .=: =:")
print(" =++++= .+ +. -- :+ .=")
print(" .+++++= .= ..=: :. =")
print(" .++=++- .= .+- =")
print(" ==++*=::.. * +")
print(" =*#-+- .:---:. :=-- .-=%. --=#- ..::.--")
print(" :#=-*- .::--:.*: .+ #@. - *@@- .. -#:")
print(" ++:*. .:--==:--:: .%%-.. :=.")
print(" =++.:...::::::..... :---+-:. .:.: --")
print(" *=..:::.. .=.")
print(" :-. .=:::")
print(" ..:=. :-..-:---:")
print(" ==:- .=-: :=-")
print(" .= =- :--. .--")
print(" -- :-:. -= .::::-:=.")
print(" :- =- :+ .+")
print(" --- -: .+ +.")
print(" := -= .+ =:")
print(" +. -: =: :=.")
print(" -. .=: --.....::-:")
print(" .=- .= :-:----- .::::.")
print(" .-: .= ..+:")
print(" -=......:.:-:+ :=")
print(" .::--::... := -")
print(" =: =:")
print(" --::.--")
print(" ....")
#someone's gonna think im a furry or a femboy or some shit because of this.
print()
ascii()
print("sigma")
print("all done!")
print("This script will exit and close in ten seconds. :)")
time.sleep(10)