def check_depends(): changelog_fn = gs.dist_path("CHANGELOG.md") try: with open(changelog_fn) as f: s = f.read() except IOError: gs.notice(DOMAIN, traceback.format_exc()) return changes = split_changes(s) if changes: def cb(): aso = gs.aso() old_rev = aso.get('changelog.rev', '') new_rev = changes[0][0] if new_rev > old_rev: aso.set('changelog.rev', new_rev) gs.save_aso() new_changes = [ 'GoSublime: Recent Updates (you may need to restart Sublime Text for changes to take effect)', '------------------------------------------------------------------------------------------', ] for change in changes: rev, msg = change if rev > old_rev: new_changes.append('\n%s\n\t%s' % (rev, msg)) else: break new_changes.append('\nSee %s for the full CHANGELOG\n' % changelog_fn) new_changes = '\n'.join(new_changes) gs.show_output(DOMAIN, new_changes, print_output=False) sublime.set_timeout(cb, 0) else: margo.call( path='/', args='hello', message='hello MarGo' )
def _token(head, bin): head = _read(gs.dist_path(head)) token = '%s %s' % (head.strip(), _fasthash(bin)) return token
import time import hashlib import base64 import Queue import uuid import margo import json import atexit DOMAIN = 'MarGo9' REQUEST_PREFIX = '%s.rqst.' % DOMAIN PROC_ATTR_NAME = 'mg9.proc' # customization of, or user-owned margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO0_SRC = gs.dist_path('something_borrowed/margo0') MARGO9_SRC = gs.dist_path('margo9') MARGO0_EXE = 'gosublime.margo0.exe' MARGO9_EXE = 'gosublime.margo9.exe' MARGO0_BIN = gs.home_path('bin', MARGO0_EXE) MARGO9_BIN = gs.home_path('bin', MARGO9_EXE) if not gs.checked(DOMAIN, '_vars'): _send_q = Queue.Queue() _recv_q = Queue.Queue() class Request(object): def __init__(self, f, method='', token=''): self.f = f self.tm = time.time() self.method = method
def cmd_help(view, edit, args, wd, rkey): gs.focus(gs.dist_path('9o.md')) push_output(view, rkey, '')
import os import Queue import re import sublime import sublime_plugin import threading import time import uuid DOMAIN = 'MarGo' REQUEST_PREFIX = '%s.rqst.' % DOMAIN PROC_ATTR_NAME = 'mg9.proc' CHANGES_SPLIT_PAT = re.compile(r'^##', re.MULTILINE) CHANGES_MATCH_PAT = re.compile(r'^\s*(r[\d.]+[-]\d+)\s+(.+?)\s*$', re.DOTALL) CHANGELOG_FN = gs.dist_path("CHANGELOG.md") CHANGES = [] with open(CHANGELOG_FN) as f: s = f.read() for m in CHANGES_SPLIT_PAT.split(s): m = CHANGES_MATCH_PAT.match(m) if m: CHANGES.append((m.group(1), m.group(2))) CHANGES.sort(reverse=True) REV = CHANGES[0][0] # customization of, or user-owned margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO_SRC = gs.dist_path('margo9')
def _run(cmd, cwd=None, shell=False): nv = { 'GOBIN': '', 'GOPATH': gs.dist_path('something_borrowed'), } return gsshell.run(cmd, shell=shell, cwd=cwd, env=nv)
import time import hashlib import base64 import Queue import uuid import margo import json import atexit DOMAIN = 'MarGo9' REQUEST_PREFIX = '%s.rqst.' % DOMAIN PROC_ATTR_NAME = 'mg9.proc' # customization of, or user-owned margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO0_SRC = gs.dist_path('something_borrowed/margo0') MARGO9_SRC = gs.dist_path('margo9') MARGO0_EXE = 'gosublime.margo0.exe' MARGO9_EXE = 'gosublime.margo9.exe' MARGO0_BIN = gs.home_path('bin', MARGO0_EXE) MARGO9_BIN = gs.home_path('bin', MARGO9_EXE) if not gs.checked(DOMAIN, '_vars'): _send_q = Queue.Queue() _recv_q = Queue.Queue() class Request(object): def __init__(self, f, method='', token=''): self.f = f self.tm = time.time()
import gsshell import sublime import threading import os import gsq import time import hashlib import base64 import Queue import uuid DOMAIN = "MarGo9" # customization of, or user-owned gocode and margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO9_SRC = gs.dist_path("margo9") GOCODE_SRC = gs.dist_path("something_borrowed/gocode") MARGO9_BIN = gs.home_path("bin", "gosublime.margo9.exe") GOCODE_BIN = gs.home_path("bin", "gosublime.gocode.exe") if not gs.checked(DOMAIN, "_vars"): _send_q = Queue.Queue() _recv_q = Queue.Queue() _stash = {} def _sb(s): bdir = gs.home_path("bin") if s.startswith(bdir): s = "~bin%s" % (s[len(bdir) :]) return s
import gscommon as gs import gsshell import sublime import threading import os import gsq import time import hashlib import base64 import Queue DOMAIN = 'MarGo9' # customization of, or user-owned gocode and margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO9_SRC = gs.dist_path('margo9') GOCODE_SRC = gs.dist_path('something_borrowed/gocode') MARGO9_BIN = gs.home_path('bin', 'gosublime.margo9.exe') GOCODE_BIN = gs.home_path('bin', 'gosublime.gocode.exe') def _sb(s): bdir = gs.home_path('bin') if s.startswith(bdir): s = '~bin%s' % (s[len(bdir):]) return s def _tp(s): return (_sb(s), ('ok' if os.path.exists(s) else 'missing')) def _so(out, err, start, end): out = out.strip()
import hashlib import base64 import Queue import uuid import margo import json import atexit import re DOMAIN = 'MarGo9' REQUEST_PREFIX = '%s.rqst.' % DOMAIN PROC_ATTR_NAME = 'mg9.proc' CHANGES_SPLIT_PAT = re.compile(r'^##', re.MULTILINE) CHANGES_MATCH_PAT = re.compile(r'^\s*(r[\d.]+[-]\d+)\s+(.+?)\s*$', re.DOTALL) CHANGELOG_FN = gs.dist_path("CHANGELOG.md") CHANGES = [] with open(CHANGELOG_FN) as f: s = f.read() for m in CHANGES_SPLIT_PAT.split(s): m = CHANGES_MATCH_PAT.match(m) if m: CHANGES.append((m.group(1), m.group(2))) CHANGES.sort(reverse=True) REV = CHANGES[0][0] # customization of, or user-owned margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO0_SRC = gs.dist_path('something_borrowed/margo0')
def _run(cmd, cwd=None, shell=False): nv = {"GOBIN": "", "GOPATH": gs.dist_path("something_borrowed")} return gsshell.run(cmd, shell=shell, cwd=cwd, env=nv)
import hashlib import base64 import Queue import uuid import margo import json import atexit import re DOMAIN = "MarGo9" REQUEST_PREFIX = "%s.rqst." % DOMAIN PROC_ATTR_NAME = "mg9.proc" CHANGES_SPLIT_PAT = re.compile(r"^##", re.MULTILINE) CHANGES_MATCH_PAT = re.compile(r"^\s*(r[\d.]+[-]\d+)\s+(.+?)\s*$", re.DOTALL) CHANGELOG_FN = gs.dist_path("CHANGELOG.md") CHANGES = [] with open(CHANGELOG_FN) as f: s = f.read() for m in CHANGES_SPLIT_PAT.split(s): m = CHANGES_MATCH_PAT.match(m) if m: CHANGES.append((m.group(1), m.group(2))) CHANGES.sort(reverse=True) REV = CHANGES[0][0] # customization of, or user-owned margo will no longer be supported # so we'll hardcode the relevant paths and refer to them directly instead of relying on PATH MARGO0_SRC = gs.dist_path("something_borrowed/margo0")