Compare commits

..

No commits in common. "6a2a102cf53dedd84c0a39b4f9e5ddddc4db7e5e" and "f488f37828f0f78f692b323d130c8b88c6198dfc" have entirely different histories.

103 changed files with 85 additions and 139 deletions

3
.gitignore vendored
View File

@ -1,8 +1,7 @@
*.log *.log
*.env *.env
*.spec *.spec
*.test.py test.py
checklist.md checklist.md
/build /build
/dist /dist
/.*

BIN
image.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 KiB

View File

@ -1,168 +1,115 @@
# compiling this is easy, just run `pip install wget` and `pip install pyinstaller` and then... import urllib
# compile with `python -m PyInstaller --onefile installer.py --icon image.ico` import urllib.request
# (wget is a dependency for this python script that doesnt come with python by default)
#import dependencies
import wget
import tarfile import tarfile
import os import os
import platform import platform
import time import time
import shutil import shutil
import sys
from pathlib import Path from pathlib import Path
#define some functions ahead of time #detect operating system and find home folder
def delete_directory(directory):
try:
shutil.rmtree(str(directory))
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))
#this defines a function to delete a directory (no shit)
def extract_tar_archive(tar_file_path, extract_to):
with tarfile.open(tar_file_path, 'r') as tar:
tar.extractall(extract_to)
#this defines a function to decompress a tar.gz file
def ascii_art():
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(" ....")
print()
#someone's gonna think im a furry or a femboy or some shit because of this.
def win_check_folder_exists(folder):
dir = os.path.normpath(str(Path.cwd()) + "/" + str(folder))
# fuck you microsoft
# this is some high-tier BULLSHIT right here
#print(dir)
if not os.path.exists(dir):
print()
print("[WARN!]: Mod folder not found. (is Fabric installed?)")
print("[WARN!]: (note: the script WILL KEEP GOING ANYWAYS and the mods directory will be MADE AUTOMATICALLY, but")
print("[WARM!]: if you don't have fabric, the mods won't be loaded and you won't be able to join the server.)")
print()
print("[WARN!] THIS IS NOT A FATAL ERROR! DON'T CLOSE THE WINDOW!")
os.mkdir("mods")
print()
time.sleep(20)
#checks for mod folder existence and outputs [WARN!]
def check_for_old_mod_archive(filepath):
if os.path.exists(filepath):
print("Found previously downloaded archive, deleting... Done.")
#shut up
os.remove(filepath)
#deletes old downloaded mod archives
def compress_tar(folder_path, output_file):
with tarfile.open(output_file, "w:gz") as tar:
tar.add(folder_path, arcname=os.path.basename(folder_path))
#thank you google gemini you are a literal lifesaver
#detect operating system and find home, minecraft, & mod folders
homedir = os.path.expanduser("~") homedir = os.path.expanduser("~")
os.chdir(homedir)
global mcfolder
global modfolder
# `global` sets these variables to exist outside of the scope of these specific `if` statements.
#operating system specific operations.
#we find the minecraft folder in this section.
if platform.system() == "Linux": if platform.system() == "Linux":
print("Operating system detected: Linux") print("Operating system detected: Linux")
os.chdir("/.minecraft") global mcfolder
global modfolder
os.chdir(homedir + '/.minecraft')
mcfolder = Path.cwd() mcfolder = Path.cwd()
modfolder = mcfolder + '/mods' modfolder = homedir + '/.minecraft/mods'
os.chdir(mcfolder)
print("Changed current working directory to '" + str(mcfolder) + "'") print("Changed current working directory to '" + str(mcfolder) + "'")
time.sleep(2)
print("Backing up mod folder...")
print()
print("Don't close the window! This'll take a moment...")
compress_tar(mcfolder, "mod-backup.tar.gz")
elif platform.system() == "Windows": elif platform.system() == "Windows":
print("Operating system detected: Windows") print("Operating system detected: Windows")
os.chdir("AppData/Roaming/.minecraft") os.chdir(homedir)
os.chdir("AppData")
os.chdir("Roaming")
os.chdir(".minecraft")
mcfolder = Path.cwd() mcfolder = Path.cwd()
os.chdir("mods")
modfolder = Path.cwd
os.chdir(mcfolder)
print("Changed current working directory to '" + str(mcfolder) + "'") print("Changed current working directory to '" + str(mcfolder) + "'")
time.sleep(2)
win_check_folder_exists("mods") os.chdir(mcfolder)
modfolder = str(mcfolder) + '/mods' #begin mod backup and deletion
#THIS DOESN'T CURRENTLY BACK UP EXISTING MODS.
try:
shutil.rmtree(str("mods"))
print("Cleared previous mods.")
except OSError as e:
print("Error: %s - %s." % (e.filename, e.strerror))
print("Backing up mod folder...")
print()
print("Don't close the window! This'll take a moment...")
compress_tar(mcfolder, "mod-backup.tar.gz")
os.chdir(mcfolder)
time.sleep(2)
# unclear if this timeout is necessary for UX
#clear out preexisting mods
check_for_old_mod_archive("mods.tar.gz")
delete_directory("mods")
#custom function*
print("Deleting mod folder contents... Done.")
#shut up again
os.mkdir(str("mods")) os.mkdir(str("mods"))
# download mod archive from https://git.adolin.xyz/saru and extract #begin download 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...") print("Fetching mods...")
wget.download('https://git.adolin.xyz/saru/lobotomy-mod-pack/raw/branch/main/mods.tar.gz') #this is the SIMPLEST implementation of curl i have ever seen i just NUTTED SO FUCKING HARD
# #this is the SIMPLEST implementation of curl i have ever seen i just NUTTED SO FUCKING HARD url = 'https://git.adolin.xyz/saru/lobotomy-mod-pack/raw/branch/main/mods.tar.gz'
# take the last one back, this is fucking insane. `wget` the fucking goat. who knew windows package manager was so damn cool? urllib.request.urlretrieve(url, 'mods.tar.gz')
extract_tar_archive('mods.tar.gz', 'mods') print("Extracting and writing to disk...")
# ('tarfile', 'directory to extract to')
ascii_art() tar_file_path = 'mods.tar.gz'
#call func to print ascii art to console extract_to = 'mods'
extract_tar_archive(tar_file_path, extract_to)
print("sigma!")
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()
print("sigma")
print("all done!") print("all done!")
print("This windows will exit and close in ten seconds. :)") print("This script will exit and close in ten seconds. :)")
time.sleep(10) time.sleep(10)

Some files were not shown because too many files have changed in this diff Show More