Break the dependency on Go-based sky_server

We now use the Dart sky_server in shelldb.
This commit is contained in:
Adam Barth 2015-07-27 15:38:42 -07:00
parent f372e07b47
commit fe3e5344a2
3 changed files with 9 additions and 37 deletions

1
DEPS
View File

@ -306,7 +306,6 @@ hooks = [
'--repository-root', '../../../..', '--repository-root', '../../../..',
'--dart-sdk-directory', '--dart-sdk-directory',
'../../../../third_party/dart-sdk/dart-sdk', '../../../../third_party/dart-sdk/dart-sdk',
'--dirs-to-ignore', 'sky/packages/workbench',
], ],
}, },
{ {

View File

@ -5,16 +5,11 @@ description: A workspace to host pub packages
homepage: https://github.com/domokit/sky_engine/tree/master/sky/packages/workbench homepage: https://github.com/domokit/sky_engine/tree/master/sky/packages/workbench
dependencies: dependencies:
sky: any sky: any
dev_dependencies: sky_tools: any
sky_tools: ^0.0.4
dependency_overrides: dependency_overrides:
material_design_icons: material_design_icons:
path: ../material_design_icons path: ../material_design_icons
sky: sky:
path: ../../sdk path: ../../sdk
sky_engine:
path: ../../../out/Debug/gen/dart-pkg/sky_engine
sky_services:
path: ../../../out/Debug/gen/dart-pkg/sky_services
environment: environment:
sdk: '>=1.8.0 <2.0.0' sdk: '>=1.8.0 <2.0.0'

View File

@ -6,14 +6,13 @@ import socket
import subprocess import subprocess
import logging import logging
import os.path import os.path
import stat
import platform
SKYPY_PATH = os.path.dirname(os.path.abspath(__file__)) SKYPY_PATH = os.path.dirname(os.path.abspath(__file__))
SKY_TOOLS_PATH = os.path.dirname(SKYPY_PATH) SRC_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(SKYPY_PATH)))
SKYGO_PATH = os.path.join(SKY_TOOLS_PATH, 'skygo')
SKY_ROOT = os.path.dirname(SKY_TOOLS_PATH) WORKBENCH_ROOT = os.path.join(SRC_ROOT, 'sky', 'packages', 'workbench')
SRC_ROOT = os.path.dirname(SKY_ROOT) DART_SDK = os.path.join(SRC_ROOT, 'third_party', 'dart-sdk', 'dart-sdk', 'bin')
PUB = os.path.join(DART_SDK, 'pub')
class SkyServer(object): class SkyServer(object):
def __init__(self, port, root, package_root): def __init__(self, port, root, package_root):
@ -27,18 +26,6 @@ class SkyServer(object):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
return sock.connect_ex(('localhost', port)) == 0 return sock.connect_ex(('localhost', port)) == 0
@staticmethod
def sky_server_path():
if platform.system() == 'Linux':
platform_dir = 'linux64'
elif platform.system() == 'Darwin':
platform_dir = 'mac'
else:
assert False, 'No sky_server binary for this platform: ' + platform.system()
return os.path.join(SKYGO_PATH, platform_dir, 'sky_server')
def start(self): def start(self):
if self._port_in_use(self.port): if self._port_in_use(self.port):
logging.warn( logging.warn(
@ -46,18 +33,9 @@ class SkyServer(object):
self.port) self.port)
return return
server_path = self.sky_server_path() subprocess.check_call([PUB, 'run', 'sky:init'], cwd=WORKBENCH_ROOT)
st = os.stat(self.sky_server_path()) args = [PUB, 'run', 'sky_tools:sky_server', str(self.port)]
if not (stat.S_IXUSR & st[stat.ST_MODE]): self.server = subprocess.Popen(args, cwd=WORKBENCH_ROOT)
logging.warn('Changing the permissions of %s to be executable.', self.sky_server_path())
os.chmod(self.sky_server_path(), st[stat.ST_MODE] | stat.S_IEXEC)
server_command = [
server_path,
'-p', str(self.port),
self.root,
self.package_root,
]
self.server = subprocess.Popen(server_command)
return self.server.pid return self.server.pid
def stop(self): def stop(self):