Показать сообщение отдельно
Старый 21.09.2012, 02:37   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: И снова о Monkey. Ставим точки над "И"

Так, инфа с поля боя, пока двигался к monkey, по пути немного поизучал python, и написал плагин для Sublime Text 2, который компилит monkey проект, копирует папку с билдом в папку с апачем (настраивается в плагине, dest переменная), и открывает стандартным броузером ссылку на проект.
Очень доволен собой, т.к. с python никогда не имел дело.

Вот код плагина, чтобы его заюзать, нужно в Sublime сходить в Tools > New Pluggin, затем вставить этот код:
import sublime, sublime_plugin
import os.path, shutil, errno
import webbrowser
from subprocess import call

def copyfolder(src, dst):
  try:
    shutil.rmtree(dst, True)
    shutil.copytree(src, dst)
    return True
  except OSError as exc:
    sublime.error_message(errno.errorcode[exc.errno])
    if exc.errno == errno.ENOTDIR:
      shutil.copy(src, dst)
    else: raise

class MonkeyBuildCommand(sublime_plugin.TextCommand):
  def run(self, edit):
    if self.view.file_name() and os.path.splitext(self.view.file_name())[1] == ".monkey":
      call(["trans_winnt.exe", "-target=html5", self.view.file_name()])

      folder = os.path.splitext(self.view.file_name())[0]
      projectName = os.path.basename(folder)
      folder += ".build\\html5"
      dest = "C:\\wamp\\www\\monkey\\" + projectName

      if copyfolder(folder, dest):
        sublime.status_message("project copied")

        os.rename(dest + "\\MonkeyGame.html", dest + "\\index.html")
        sublime.status_message("html file renamed")

        webbrowser.open_new_tab("http://localhost/monkey/" + projectName)
      else:
        sublime.error_message("project copying error")
    else:
      sublime.error_message("could not run for non .monkey files")
Очень важны табы, т.к. это python.
Далее охраняем это куда либо в папку Packages для Sublime. Её найти можно если сходить в Preferences > Browse Packages..
Далее идём в Preference > Key Binding User..
И там добавляем вот такую строку:
{ "keys": ["ctrl+m"], "command": "monkey_build" }
Не забываем отбиндить другой хоткей на эту же кнопку, идём в Preferences > Key Bindings Default, и ищём "ctrl+m", комментим всю строку с этим хоткеем.

Далее нужно чтобы в системе был добавлен Path на папку с trans_winnt.exe, он лежит в monkey/bin/.

Готово. Открываем любой .monkey файл, и жмём ctrl+m.
Если редактировали плагин, там важно что будет применяться функция удаления папки и всего содержимого, если намудрите чего, удалит не то. Так что на ваш страх и риск, я ответсвенности не несу :D

Данный модуль можно адаптировать под другие target'ы.

В общем сказка - билдит проект, и копирует всё в папку с веб файлами апача и запускает в броузере..
Зачем мне это нужно? Для того чтобы тестировать веб сокеты и т.п. дребедень. Файлы с всякой хренью для тестов я буду хранить на апаче. В .httaccess настрою чтобы при переходе в localhost/socket/ перенаправлял на nodejs, который выдаст socket.io.js файл для коммуникации с сервером. Таким образом у меня будет публично доступная последняя версия игры работающая с веб сокетами.
Теперь мне нужно заняться модулем для socket.io
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
devolonter (21.09.2012), Harter (21.09.2012), Reizel (23.02.2013)