From 7a75d43f65875115ff8e52470c1aa0114c14af78 Mon Sep 17 00:00:00 2001 From: Dpeta Date: Wed, 24 Mar 2021 17:27:09 +0100 Subject: [PATCH] w.i.p setup.py test --- easyInstaller | 283 -------------------------------------- pesterchum_debug.py | 10 -- pesterchum_debug_linux.py | 10 -- setup-win.py | 45 ------ setup.py | 42 +++--- setup32.py | 30 ++-- 6 files changed, 38 insertions(+), 382 deletions(-) delete mode 100755 easyInstaller delete mode 100644 pesterchum_debug.py delete mode 100644 pesterchum_debug_linux.py delete mode 100644 setup-win.py diff --git a/easyInstaller b/easyInstaller deleted file mode 100755 index b5798fa..0000000 --- a/easyInstaller +++ /dev/null @@ -1,283 +0,0 @@ -#!/usr/bin/env python - -# This program is free software. It comes without any warranty, to -# the extent permitted by applicable law. You can redistribute it -# and/or modify it under the terms of the Do What The Fuck You Want -# To Public License, Version 2, as published by Sam Hocevar. See -# http://sam.zoy.org/wtfpl/COPYING for more details. -import sys, traceback -error = 0 -try: - import os, shutil - from stat import * - from string import Template - - _PLATFORM = sys.platform - if _PLATFORM in ['win32','cygwin','darwin','os2','os2emx','riscos','atheos']: - print "Whoa there buddy! This installation script isn't meant to be run on your OS." - exit() - - if os.getuid() != 0: - print "This program must be run as root (sudo)." - exit() - - _HOME = os.environ['HOME'] - _USER = os.environ['SUDO_USER'] - _UID = int(os.environ['SUDO_UID']) - _GID = int(os.environ['SUDO_GID']) - # fix home if it's root weirdness - if _HOME.find("root") != -1: - _HOME = "/home/"+_USER - - def setPermissions(path): - os.chown(path, _UID, _GID) - for file_ in os.listdir(path): - filePath = os.path.join(path,file_) - if os.path.isdir(filePath): - setPermissions(filePath) - else: - os.chown(filePath, _UID, _GID) - - def findPesterchum(path): - for f in os.listdir(path): - filePath = os.path.join(path, f) - if os.path.isdir(filePath): - if os.path.exists(filePath+"/pesterchum.py"): - return filePath - else: - a=findPesterchum(filePath) - if a: return a - elif f == "pesterchum.py": - return path - - if not os.path.exists(_HOME+"/.pcInstallLoc"): - print "Welcome to the Pesterchum 3.14 Easy Installer (for Linux)!\n\ - Created by Kiooeht [evacipatedBox] May 28th-29th, 2011.\n\ - License: WTFPL\n\ - \n\ - Leaving an option blank will accept it's default [in brackets]\n\ - Are you ready to begin your MAGICAL JOURNEY?!\n\ - Of course you are!!! ::::D" - # ask user about things - while 1: - install = raw_input("Install location [~/.pesterchum]: ") - if install == "": - instLoc = _HOME+"/.pesterchum" - break - else: - if install[0] == "~": - install = _HOME+install[1:] - if os.path.exists(install[:install.rfind("/")]): - instLoc = install - break - print "No can do" - if os.path.exists("/usr/share/applications"): - while 1: - gnome = raw_input("Create a GNOME menu item? [Y/n]: ") - if gnome.lower() == "y" or gnome == "": - gnome = True;break - elif gnome.lower() == "n": - gnome = False;break - else: - print "herpaderp" - while 1: - shortcut = raw_input("Create launcher in home directory? [Y/n]: ") - if shortcut.lower() == "y" or shortcut == "": - shortcut = True;break - elif shortcut.lower() == "n": - shortcut = False;break - else: - print "u jelly?" - - # do some shitty install - try: - fileLoc = findPesterchum(".") - except RuntimeError: - print "I'm sorry! I was unable to find the pesterchum files :(" - print "Please put them where I can find them" - exit() - if not fileLoc: - print "I'm sorry! I was unable to find the pesterchum files :(" - print "Please put them where I can find them" - exit() - print "Copying files..." - ignore = shutil.ignore_patterns('*.pyc') - if not os.path.exists(instLoc): - shutil.copytree(fileLoc, instLoc, ignore=ignore) - if os.path.exists(instLoc+"/pesterchum.js"): - f = open(instLoc+"/pesterchum.js") - js = f.read() - f.close() - defa = js.find("\"defaultprofile\"") - if defa != -1: - start = js.find("\"", js.find(":", defa+1)) - end = js.find("\"", start+1) - party = js[start+1:end] - if not os.path.exists(instLoc+"/profiles") or \ - party+".js" not in os.listdir(instLoc+"/profiles"): - print "Protecting you from stupidity..." - print " (aka. Deleting reference to non-existant default profile)" - #os.remove(instLoc+"/pesterchum.js") - f = open(instLoc+"/pesterchum.js", "w") - f.write(js[:defa-1]+js[js.find(",", end)+1:]) - f.close() - else: - if not os.path.exists(instLoc+"/logs") and os.path.exists(fileLoc+"/logs"): - shutil.copytree(fileLoc+"/logs", instLoc+"/logs", ignore=ignore) - if not os.path.exists(instLoc+"/profiles") and os.path.exists(fileLoc+"/profiles"): - shutil.copytree(fileLoc+"/profiles", instLoc+"/profiles", ignore=ignore) - if not os.path.exists(instLoc+"/pesterchum.js") and os.path.exists(fileLoc+"/pesterchum.js"): - shutil.copy(fileLoc+"/pesterchum.js", instLoc) - shutil.copytree(fileLoc+"/oyoyo", instLoc+"/oyoyo", ignore=ignore) - shutil.copytree(fileLoc+"/smilies", instLoc+"/smilies", ignore=ignore) - shutil.copytree(fileLoc+"/themes", instLoc+"/themes", ignore=ignore) - for f in os.listdir(fileLoc): - filePath = os.path.join(fileLoc, f) - if not os.path.isdir(filePath) and f != "pesterchum.js": - shutil.copy(filePath, instLoc) - setPermissions(instLoc) - # save the install location - f = open(_HOME+"/.pcInstallLoc", "w") - f.write(instLoc) - f.close() - #create a cool executable - print "Creating executable... (/usr/local/bin/pesterchum)" - f = open("/usr/local/bin/pesterchum", 'w') - f.write("#!/bin/sh\ncd "+instLoc+"\n./pesterchum $@") - f.close() - os.chmod("/usr/local/bin/pesterchum", S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) - # Create a fancy menu item in gnome - if gnome: - print "Creating menu item..." - t = Template("[Desktop Entry]\nEncoding=UTF-8\nVersion=3.14.2\nName=Pesterchum\nComment=IM client based on Homestuck Pesterchum\nCategories=Network;InstantMessaging;\nExec=/usr/local/bin/pesterchum\nIcon=$loc/pesterchum.ico\nTerminal=false\nType=Application") - f = open("/usr/share/applications/pesterchum.desktop", "w") - f.write(t.safe_substitute(loc=instLoc)) - f.close() - # create shortcut launcher - if shortcut: - print "Creating launcher..." - t = Template("#!/usr/bin/env xdg-open\n[Desktop Entry]\nEncoding=UTF-8\nVersion=3.14.2\nName=Pesterchum\nComment=IM client based on Homestuck Pesterchum\nCategories=Network;InstantMessaging;\nExec=pesterchum\nIcon=$loc/pesterchum.ico\nTerminal=false\nType=Application") - f = open(_HOME+"/Pesterchum.desktop", "w") - f.write(t.safe_substitute(loc=instLoc)) - f.close() - os.chown(_HOME+"/Pesterchum.desktop", _UID, _GID) - os.chmod(_HOME+"/Pesterchum.desktop", S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) - else: - print "Welcome to the Pesterchum 3.14 Easy Uninstaller (for Linux)!\n\ - Created by Kiooeht [evacipatedBox] May 28th-29th, 2011.\n\ - License: WTFPL\n" - while 1: - remove = raw_input("Would you like to uninstall Pesterchum? [y/n]: ") - if remove.lower() == "y": - while 1: - killdata = raw_input("Purge your settings, profiles, and logs? [y/N]: ") - if killdata.lower() == "n" or killdata == "": - killdata = False;break - elif killdata.lower() == "y": - killdata = True;break - else: - print "Hmmmmm...?" - f = open(_HOME+"/.pcInstallLoc") - instLoc = f.readline() - f.close() - os.remove(_HOME+"/.pcInstallLoc") - if killdata: - print "Removing files..." - shutil.rmtree(instLoc) - else: - print "Backing up settings, profiles, and logs..." - if os.path.exists(instLoc+"/logs"): - shutil.move(instLoc+"/logs", "_easyBackupLOGS") - if os.path.exists(instLoc+"/profiles"): - shutil.move(instLoc+"/profiles", "_easyBackupPROFILES") - if os.path.exists(instLoc+"/pesterchum.js"): - shutil.move(instLoc+"/pesterchum.js", "_easyBackupSETTINGS") - print "Removing files..." - shutil.rmtree(instLoc) - print "Restoring up settings, profiles, and logs..." - os.mkdir(instLoc) - if os.path.exists("_easyBackupLOGS"): - shutil.move("_easyBackupLOGS", instLoc+"/logs") - if os.path.exists("_easyBackupPROFILES"): - shutil.move("_easyBackupPROFILES", instLoc+"/profiles") - if os.path.exists("_easyBackupSETTINGS"): - shutil.move("_easyBackupSETTINGS", instLoc+"/pesterchum.js") - setPermissions(instLoc) - print "Trashing executable..." - os.remove("/usr/local/bin/pesterchum") - if os.path.exists("/usr/share/applications/pesterchum.desktop"): - print "Maiming menu item..." - os.remove("/usr/share/applications/pesterchum.desktop") - if os.path.exists(_HOME+"/Pesterchum.desktop"): - print "Destroying launcher..." - os.remove(_HOME+"/Pesterchum.desktop") - elif os.path.exists(_HOME+"/Desktop/Pesterchum.desktop"): - print "Destroying launcher..." - os.remove(_HOME+"/Desktop/Pesterchum.desktop") - else: - print "Unable to find launcher, non destroyed" - break - elif remove.lower() == "n": - print "Aborting uninstallation process" - break - else: - print "Invalid input, try again" -except KeyboardInterrupt: - print "" -except Exception as e: - error = -1 -finally: - if error == -1: - print "Oh noes!! It seems an error has occurred!" - lineN = traceback.extract_tb(sys.exc_info()[2])[-1][1] - print "The error occurred on line %s:" % lineN - formatted_lines = traceback.format_exc().splitlines() - print " '" + formatted_lines[-2] + "'" - print formatted_lines[-1] - - while 1: - print "\nWould you like to (s)end a bug report," - send = raw_input("view the (f)ull error message, or (n)either? [s/f/n]: ") - if send.lower() == "n": - act = 2;break - elif send.lower() == "s": - act = 0;break - elif send.lower() == "f": - print "!---------------BEGIN ERROR MESSAGE---------------!" - for l in formatted_lines: - print l - print "!----------------END ERROR MESSAGE----------------!" - send = raw_input("Would you like to send this error message? [y/n]: ") - if send.lower() == "y": - act = 0;break - elif send.lower() == "n": - act = 2;break - else: - print "What was that?" - if act == 2: - print "Okay" - elif act == 0: - print "Thank you for taking time out of your day to complete a bug report." - print "Fields marked with an asterisk (*) are required." - name = raw_input("Your Name: ") - while 1: - os = raw_input("OS (include version) (ex. Ubuntu 10.10) [*]: ") - if os: break - else: print "This field is required." - while 1: - msg = raw_input("Short description of problem [*]: ") - if msg: break - else: print "This field is required." - import urllib, json - data = urllib.urlencode({"name":name, "os":os, "msg":msg, "short":formatted_lines[-1], "long":json.dumps(formatted_lines)}) - try: - print "Sending..." - f = urllib.urlopen("http://distantsphere.com/pc/easyInstall.php", data) - text = f.read() - print text - if text == "success!": - print "Sent!" - else: - print "There seems to have been a problem sending your bug report! ):" - except: - print "There seems to have been a problem sending your bug report! ):" diff --git a/pesterchum_debug.py b/pesterchum_debug.py deleted file mode 100644 index 1b05d37..0000000 --- a/pesterchum_debug.py +++ /dev/null @@ -1,10 +0,0 @@ -# runs pesterchum but appends stdout/err to log file -import subprocess -import datetime -f = open("debug.log", 'a') -d = datetime.datetime.now() -f.write("=== PESTERCHUM DEBUG %s ===\n" % d.strftime("%m-%d-%y %H-%M")) -f.flush() -p = subprocess.Popen("pesterchum.exe", stdout=f, stderr=subprocess.STDOUT) -p.wait() -f.close() diff --git a/pesterchum_debug_linux.py b/pesterchum_debug_linux.py deleted file mode 100644 index 7338732..0000000 --- a/pesterchum_debug_linux.py +++ /dev/null @@ -1,10 +0,0 @@ -# runs pesterchum but appends stdout/err to log file -import subprocess -import datetime -f = open("debug.log", 'a') -d = datetime.datetime.now() -f.write("=== PESTERCHUM DEBUG %s ===\n" % d.strftime("%m-%d-%y %H-%M")) -f.flush() -p = subprocess.Popen(["python", "pesterchum.py"], stdout=f, stderr=subprocess.STDOUT) -p.wait() -f.close() diff --git a/setup-win.py b/setup-win.py deleted file mode 100644 index 439ecb7..0000000 --- a/setup-win.py +++ /dev/null @@ -1,45 +0,0 @@ -# WINDOWS setup file! - -from cx_Freeze import setup, Executable -import sys -import os -import os.path -import shutil - -if sys.platform == "win32": - base = "Win32GUI" -else: - base = "Console" - -setup( - name = "PESTERCHUM", - version = "3.14", - description = "P3ST3RCHUM", - executables = [Executable("pesterchum.py", - base=base, - compress=True, - icon="pesterchum.ico", - )]) -os.rename("build/exe.win32-2.6", "build/pesterchum") -pcloc = "build/pesterchum" - -shutil.copytree("themes", "%s/themes" % (pcloc)) -shutil.copytree("imageformats", "%s/imageformats" % (pcloc)) -shutil.copytree("smilies", "%s/smilies" % (pcloc)) -f = open("%s/pesterchum.js" % (pcloc), 'w') -f.write("{\"tabs\":true, \"chums\":[]}") -f.close() -shutil.copy("C:/Dev/Py26MSdlls-9.0.21022.8/msvc/msvcm90.dll", "%s" % (pcloc)) -shutil.copy("C:/Dev/Py26MSdlls-9.0.21022.8/msvc/msvcp90.dll", "%s" % (pcloc)) -shutil.copy("C:/Dev/Py26MSdlls-9.0.21022.8/msvc/msvcr90.dll", "%s" % (pcloc)) -shutil.copy("C:/Dev/Py26MSdlls-9.0.21022.8/msvc/x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.manifest", - "%s" % (pcloc)) -shutil.copy("pesterchum.nsi", "%s/" % (pcloc)) -shutil.copy("pesterchum-update.nsi", "%s/ % (pcloc)") -os.mkdir("%s/profiles" % (pcloc)) -os.mkdir("%s/logs" % (pcloc)) -shutil.copy("logs/chums.js", "%s/logs" % (pcloc)) -shutil.copy("readme.txt", "%s/" % (pcloc)) -shutil.copy("themes.txt", "%s/" % (pcloc)) - - diff --git a/setup.py b/setup.py index 447bbfb..cae815e 100644 --- a/setup.py +++ b/setup.py @@ -4,6 +4,12 @@ import sys import os import shutil +if sys.version_info < (3, 0, 0): + sys.exit("Python3 versions lower than 3 are not supported.") + +def is_64bit() -> bool: + return sys.maxsize > 2**32 + if sys.platform == "win32": base = "Win32GUI" else: @@ -19,26 +25,24 @@ build_exe_options = { 'collections.array', 'collections._weakref'], } - -setup( - name = "PESTERCHUM", - version = "3.41", - description = "P3ST3RCHUM", - options = {"build_exe": build_exe_options}, - executables = [Executable("pesterchum.py", - base=base, - compress=True, - icon="pesterchum.ico", - ), - Executable("pesterchum_debug.py", - base=base, - compress=True, - icon="pesterchum.ico", - )]) - +if is_64bit() == true: + setup( + name = "PESTERCHUM", + version = "3.41", + description = "P3ST3RCHUM", + options = {"build_exe": build_exe_options}, + executables = [Executable("pesterchum.py", + base=base, + compress=True, + icon="pesterchum.ico", + build_exe: 'build\Pesterchum\' + )]) + if sys.platform == "win32": + os.rename("build/exe.win-amd64-2.7", "build/pesterchum") +else: + pass #Replace exe.win-amd64-2.7 with whatever it seems to generate as for you. -if sys.platform == "win32": - os.rename("build/exe.win-amd64-2.7", "build/pesterchum") + shutil.copytree("themes", "build/pesterchum/themes") shutil.copytree("smilies", "build/pesterchum/smilies") diff --git a/setup32.py b/setup32.py index 6a8a50e..e878383 100644 --- a/setup32.py +++ b/setup32.py @@ -4,10 +4,10 @@ import sys import os import shutil +from version import _pcVersion + if sys.platform == "win32": base = "Win32GUI" -else: - base = "Console" build_exe_options = { "includes": ["requests","urllib"], @@ -21,9 +21,9 @@ build_exe_options = { } setup( - name = "PESTERCHUM", - version = "3.41", - description = "P3ST3RCHUM", + name = "Pesterchum", + version = str(_pcVersion), + description = "Pesterchum Alt. 2.0 :)", options = {"build_exe": build_exe_options}, executables = [Executable("pesterchum.py", base=base, @@ -34,19 +34,19 @@ setup( icon="pesterchum.ico", )]) -if sys.platform == "win32": - os.rename("build/exe.win32-2.7", "build/pesterchum") +#if sys.platform == "win32": +# os.rename("build/exe.win32-2.7", "build/pesterchum") shutil.copytree("themes", "build/pesterchum/themes") shutil.copytree("smilies", "build/pesterchum/smilies") shutil.copytree("quirks", "build/pesterchum/quirks") -shutil.copy("pesterchum.nsi", "build/pesterchum/") -shutil.copy("pesterchum-update.nsi", "build/pesterchum/") -os.mkdir("build/pesterchum/profiles") -os.mkdir("build/pesterchum/logs") +#shutil.copy("pesterchum.nsi", "build/pesterchum/") +#shutil.copy("pesterchum-update.nsi", "build/pesterchum/") +#os.mkdir("build/pesterchum/profiles") +#os.mkdir("build/pesterchum/logs") #Readme & txt -shutil.copy("README.md", "build/pesterchum/") -shutil.copy("README-pesterchum.mkdn", "build/pesterchum/") -shutil.copy("README-karxi.mkdn", "build/pesterchum/") -shutil.copy("themes.txt", "build/pesterchum/") +#shutil.copy("README.md", "build/pesterchum/") +#shutil.copy("README-pesterchum.mkdn", "build/pesterchum/") +#shutil.copy("README-karxi.mkdn", "build/pesterchum/") +#shutil.copy("themes.txt", "build/pesterchum/")