From 6bf82a36536d9ec00b3aa62c748c61b8a4aeaf22 Mon Sep 17 00:00:00 2001 From: DisposaBoy Date: Sat, 7 May 2016 12:34:28 +0100 Subject: [PATCH] add initial support for margo extensions --- .gitignore | 2 ++ gosubl/gs.py | 3 +++ gosubl/mg9.py | 21 +++++++++++++++++---- src/disposa.blue/margo/gosublime-ext.go | 7 +++++++ 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 src/disposa.blue/margo/gosublime-ext.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..882d4499 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +bin/ +pkg/ diff --git a/gosubl/gs.py b/gosubl/gs.py index f34bba86..1292df6c 100644 --- a/gosubl/gs.py +++ b/gosubl/gs.py @@ -741,6 +741,9 @@ def packages_dir(): def dist_path(*a): return os.path.join(packages_dir(), 'GoSublime', *a) +def user_path(*a): + return os.path.join(packages_dir(), 'User', 'GoSublime', *a) + def mkdirp(fn): try: os.makedirs(fn) diff --git a/gosubl/mg9.py b/gosubl/mg9.py index 950eb200..af7c467d 100644 --- a/gosubl/mg9.py +++ b/gosubl/mg9.py @@ -39,7 +39,7 @@ def gs_init(m={}): INSTALL_EXE = margo_exe aso_install_vesion = gs.aso().get('install_version', '') - f = lambda: install(aso_install_vesion, False) + f = lambda: install(aso_install_vesion, True) gsq.do('GoSublime', f, msg='Installing MarGo', set_status=False) class Request(object): @@ -158,12 +158,19 @@ def install(aso_install_vesion, force_install, _reinstall=False): gs.notify('GoSublime', 'Installing MarGo') start = time.time() - cmd = sh.Command(['go', 'build', '-v', '-x', '-o', INSTALL_EXE, 'disposa.blue/margo']) + cmd = sh.Command([ + 'go', 'build', + '-tags', 'gosublime' if glob.glob(ext_pkg_path('*.go')) else '', + '-i', + '-v', + '-o', INSTALL_EXE, + 'disposa.blue/margo', + ]) cmd.wd = gs.home_dir_path('bin') cmd.env = { 'CGO_ENABLED': '0', 'GOBIN': '', - 'GOPATH': gs.dist_path(), + 'GOPATH': install_gopath(), } ev.debug('%s.build' % DOMAIN, { @@ -172,7 +179,7 @@ def install(aso_install_vesion, force_install, _reinstall=False): }) cr = cmd.run() - m_out = 'cmd: `%s`\nstdout: `%s`\nstderr: `%s`\nexception: `%s`' % ( + m_out = 'cmd: `%s`\nstdout: `\n%s\n`\nstderr: `\n%s\n`\nexception: `%s`' % ( cr.cmd_lst, cr.out.strip(), cr.err.strip(), @@ -265,6 +272,12 @@ def f(): return m_out +def ext_pkg_path(*a): + return gs.user_path('src', 'gosublime', *a) + +def install_gopath(): + return gs.user_path() + os.pathsep + gs.dist_path() + def calltip(fn, src, pos, quiet, f): tid = '' if not quiet: diff --git a/src/disposa.blue/margo/gosublime-ext.go b/src/disposa.blue/margo/gosublime-ext.go new file mode 100644 index 00000000..f8f10f81 --- /dev/null +++ b/src/disposa.blue/margo/gosublime-ext.go @@ -0,0 +1,7 @@ +// +build gosublime + +package main + +import ( + _ "gosublime" +)