[~] Refactor
This commit is contained in:
parent
a8616ff090
commit
d8f1ae8c12
@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
import socket
|
||||||
|
import optparse
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import traceback
|
import traceback
|
||||||
@ -438,6 +440,78 @@ done'
|
|||||||
shell=True
|
shell=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def http_server(argv):
|
||||||
|
assert isinstance(argv, list) and all([isinstance(o, str) for o in argv])
|
||||||
|
parser = optparse.OptionParser()
|
||||||
|
parser.add_option(
|
||||||
|
'--public',
|
||||||
|
dest='public',
|
||||||
|
action='store_true',
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
|
parser.add_option(
|
||||||
|
'--port',
|
||||||
|
dest='port',
|
||||||
|
type='int',
|
||||||
|
default=80,
|
||||||
|
)
|
||||||
|
parser.add_option(
|
||||||
|
'--host',
|
||||||
|
dest='host',
|
||||||
|
type='str',
|
||||||
|
default='127.0.0.1',
|
||||||
|
)
|
||||||
|
options, args = parser.parse_args(argv)
|
||||||
|
|
||||||
|
assert options.port >= 1
|
||||||
|
|
||||||
|
try:
|
||||||
|
assert not socket.inet_aton(options.host) is None
|
||||||
|
subprocess.check_call([
|
||||||
|
'ping', '-w', '1',
|
||||||
|
options.host
|
||||||
|
])
|
||||||
|
except:
|
||||||
|
raise RuntimeError('invalid ip address %s' % options.host)
|
||||||
|
|
||||||
|
|
||||||
|
index_section = 'autoindex on;'
|
||||||
|
if len(sys.argv) == 3 and sys.argv[2] == '--public':
|
||||||
|
location_section = 'location / {%s}' % index_section
|
||||||
|
else:
|
||||||
|
token = os.urandom(16).hex()
|
||||||
|
print(
|
||||||
|
'access url is http://%s:%d/%s/' % (
|
||||||
|
socket.gethostname(),
|
||||||
|
options.port,
|
||||||
|
token,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
location_section = (
|
||||||
|
'location / {'
|
||||||
|
'deny all;'
|
||||||
|
'}'
|
||||||
|
'location /%s/ {'
|
||||||
|
'alias /app/;'
|
||||||
|
'%s'
|
||||||
|
'}'
|
||||||
|
) % (token, index_section)
|
||||||
|
subprocess.check_call(
|
||||||
|
r'''
|
||||||
|
sudo docker run \
|
||||||
|
-p %s:%d:80 \
|
||||||
|
-u root \
|
||||||
|
-it --entrypoint=/bin/bash \
|
||||||
|
-v $PWD:/app:ro \
|
||||||
|
nginx:latest \
|
||||||
|
-c 'echo "server{listen 80; charset UTF-8; root /app; %s}" > /etc/nginx/conf.d/default.conf; nginx -g "daemon off;"'
|
||||||
|
''' % (
|
||||||
|
options.host,
|
||||||
|
options.port,
|
||||||
|
location_section,
|
||||||
|
),
|
||||||
|
shell=True)
|
||||||
|
|
||||||
def player_v1(folder_url, item_id):
|
def player_v1(folder_url, item_id):
|
||||||
import sys
|
import sys
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
@ -535,15 +609,7 @@ try:
|
|||||||
sys.stdout.write(status())
|
sys.stdout.write(status())
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
elif sys.argv[1] == 'http-server':
|
elif sys.argv[1] == 'http-server':
|
||||||
subprocess.check_call(r'''
|
http_server(sys.argv[2:])
|
||||||
sudo docker run \
|
|
||||||
-p 80:80 \
|
|
||||||
-u root \
|
|
||||||
-it --entrypoint=/bin/bash \
|
|
||||||
-v $PWD:/app:ro \
|
|
||||||
nginx:latest \
|
|
||||||
-c 'echo "server{listen 80; charset UTF-8; root /app; location / {autoindex on;}}" > /etc/nginx/conf.d/default.conf; nginx -g "daemon off;"'
|
|
||||||
''', shell=True)
|
|
||||||
elif sys.argv[1] == 'wl-screenshot':
|
elif sys.argv[1] == 'wl-screenshot':
|
||||||
subprocess.check_call(r'''
|
subprocess.check_call(r'''
|
||||||
grim -g "$(slurp)" - | wl-copy
|
grim -g "$(slurp)" - | wl-copy
|
||||||
@ -606,6 +672,8 @@ try:
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
except SystemExit:
|
||||||
|
pass
|
||||||
except:
|
except:
|
||||||
msg = 'not implemented\n%s' % traceback.format_exc()
|
msg = 'not implemented\n%s' % traceback.format_exc()
|
||||||
logging.error(msg)
|
logging.error(msg)
|
||||||
|
Loading…
Reference in New Issue
Block a user