use python3 for installer, current osx does not have python2 anymore

This commit is contained in:
j 2023-07-09 13:29:37 +05:30
parent 0b612a1873
commit 1582cef26a
2 changed files with 20 additions and 13 deletions

View file

@ -41,7 +41,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
let install_py = resourcePath?.stringByAppendingString("/install.py")
let install_html = resourcePath?.stringByAppendingString("/install.html")
let install = NSTask()
install.launchPath = "/usr/bin/python"
install.launchPath = "/usr/bin/python3"
install.arguments = [install_py!]
install.launch()
open(install_html!)

View file

@ -1,5 +1,5 @@
#!/usr/bin/env python
from __future__ import division, with_statement, print_function
#!/usr/bin/env python3
from contextlib import closing
import json
@ -7,19 +7,23 @@ import os
import sys
import time
import tarfile
import urllib2
import SimpleHTTPServer
import SocketServer
import urllib.request
import urllib.error
import urllib.parse
import http.server
import socketserver
from threading import Thread
PORT = 9841
static_dir = os.path.normpath(os.path.abspath(os.path.dirname(__file__)))
def makedirs(dirname):
if not os.path.exists(dirname):
os.makedirs(dirname)
def get_platform():
name = sys.platform
if name.startswith('darwin'):
@ -32,7 +36,8 @@ def get_platform():
name = 'linux32'
return name
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
class Handler(http.server.SimpleHTTPRequestHandler):
def do_OPTIONS(self):
self.send_response(200, 'OK')
self.send_header('Allow', 'GET, POST, OPTIONS')
@ -49,7 +54,7 @@ class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
else:
path = os.path.join(static_dir, 'index.html' if self.path == '/' else self.path[1:])
if os.path.exists(path):
with open(path) as fd:
with open(path, 'rb') as fd:
content = fd.read()
self.send_response(200, 'OK')
content_type = {
@ -65,6 +70,8 @@ class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Content-Length', str(len(content)))
self.end_headers()
if isinstance(content, str):
content = content.encode()
self.wfile.write(content)
@ -118,8 +125,8 @@ class Install(Thread):
dirname = os.path.dirname(filename)
if dirname:
makedirs(dirname)
with open(filename, 'w') as f:
with closing(urllib2.urlopen(url)) as u:
with open(filename, 'wb') as f:
with closing(urllib.request.urlopen(url)) as u:
size = int(u.headers.get('content-length', 0))
self.status["size"] = size
available = 0
@ -131,7 +138,7 @@ class Install(Thread):
data = u.read(4096)
def get_release(self):
with closing(urllib2.urlopen(self.release_url)) as u:
with closing(urllib.request.urlopen(self.release_url)) as u:
data = json.load(u)
return data
@ -144,8 +151,8 @@ if __name__ == '__main__':
sys.exit(1)
else:
target = sys.argv[1]
SocketServer.TCPServer.allow_reuse_address = True
httpd = SocketServer.TCPServer(("", PORT), Handler)
socketserver.TCPServer.allow_reuse_address = True
httpd = socketserver.TCPServer(("", PORT), Handler)
install = Install(target, httpd)
httpd.install = install
httpd.serve_forever()