diff --git a/README b/README
new file mode 100644
index 0000000..376e08a
--- /dev/null
+++ b/README
@@ -0,0 +1,4 @@
+manual deploy
+
+cp Snippets/* ~/Library/Application\ Support/Vico/Bundles/vicoapp-python.tmbundle/Snippets/
+
diff --git a/Snippets/New py.tmSnippet b/Snippets/New py.tmSnippet
new file mode 100644
index 0000000..14e4b61
--- /dev/null
+++ b/Snippets/New py.tmSnippet
@@ -0,0 +1,45 @@
+
+
+
+
+ content
+ #!/usr/bin/env python
+# coding: utf-8
+
+import os
+import sys
+
+import daemon
+import gflags
+import logging
+
+from pygaga.helpers.logger import log_init
+from pygaga.helpers.dbutils import get_db_engine
+
+logger = logging.getLogger('AppLogger')
+
+FLAGS = gflags.FLAGS
+
+def main():
+ pass
+
+if __name__ == "__main__":
+ # usage: ${prog} ip:port --daemon --stderr ...
+ gflags.DEFINE_boolean('daemon', False, "is start in daemon mode?")
+ log_init('AppLogger', "sqlalchemy.*")
+ #if FLAGS.daemon:
+ # file_path = os.path.split(os.path.abspath(__file__))[0]
+ # daemon.daemonize(os.path.join(file_path, 'app.pid'))
+ main()
+
+
+ name
+ new python
+ scope
+ source.python
+ tabTrigger
+ py
+ uuid
+ 2367AA28-A535-40C0-AE04-0195E927CD45
+
+
diff --git a/Snippets/New web_py.tmSnippet b/Snippets/New web_py.tmSnippet
new file mode 100644
index 0000000..b6bd70f
--- /dev/null
+++ b/Snippets/New web_py.tmSnippet
@@ -0,0 +1,69 @@
+
+
+
+
+ content
+ #!/usr/bin/env python
+# coding: utf-8
+
+import os
+import sys
+
+import web
+import daemon
+import gflags
+import logging
+
+from pygaga.helpers.logger import log_init
+from pygaga.helpers.webutils import file_env, render_to_string, render_html
+
+logger = logging.getLogger('WebLogger')
+
+FLAGS = gflags.FLAGS
+
+file_path = os.path.split(os.path.abspath(__file__))[0]
+
+ENV = file_env(file_path)
+
+urls = (
+ '/', 'home',
+)
+def my_filter(input):
+ return input
+
+ENV.filters['my_filter'] = my_filter
+
+class home:
+ def GET(self):
+ return 'test'
+
+if __name__ == "__main__":
+ # usage: ${prog} ip:port --daemon --stderr ...
+ gflags.DEFINE_boolean('daemon', False, "is start in daemon mode?")
+ gflags.DEFINE_boolean('webdebug', False, "is web.py debug")
+ gflags.DEFINE_boolean('reload', False, "is web.py reload app")
+ backup_args = []
+ backup_args.extend(sys.argv)
+ sys.argv = [sys.argv[0],] + sys.argv[2:]
+ log_init('WebLogger', "sqlalchemy.*")
+ sys.argv = backup_args[:2]
+ web.config.debug = FLAGS.webdebug
+ if len(sys.argv) == 1:
+ web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
+ if FLAGS.daemon:
+ daemon.daemonize(os.path.join(file_path, 'web.pid'))
+ #render = web.template.render('templates/', base='layout')
+ app = web.application(urls, globals(), autoreload=FLAGS.reload)
+ app.run()
+
+
+ name
+ new web.py template
+ scope
+ source.python
+ tabTrigger
+ web
+ uuid
+ 1B403321-EC35-49D6-8756-F80C630150B4
+
+
diff --git a/Snippets/gflags boolean.tmSnippet b/Snippets/gflags boolean.tmSnippet
new file mode 100644
index 0000000..22c9efd
--- /dev/null
+++ b/Snippets/gflags boolean.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ gflags.DEFINE_boolean('$1', ${2:False}, "$3")
+ name
+ gflags define boolean
+ scope
+ source.python
+ tabTrigger
+ gbool
+ uuid
+ 1BBE1C85-C581-473D-BCE5-98292408FEA2
+
+
diff --git a/Snippets/gflags enum.tmSnippet b/Snippets/gflags enum.tmSnippet
new file mode 100644
index 0000000..d27b199
--- /dev/null
+++ b/Snippets/gflags enum.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ gflags.DEFINE_enum('$1', '$2', ['$2',], "$3")
+ name
+ gflags define enum
+ scope
+ source.python
+ tabTrigger
+ genum
+ uuid
+ 6B2EB187-5CEF-4FBC-8517-AE2E7E3E06EB
+
+
diff --git a/Snippets/gflags integer.tmSnippet b/Snippets/gflags integer.tmSnippet
new file mode 100644
index 0000000..6843a4f
--- /dev/null
+++ b/Snippets/gflags integer.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ gflags.DEFINE_integer('$1', ${2:0}, "$3")
+ name
+ gflags define int
+ scope
+ source.python
+ tabTrigger
+ gint
+ uuid
+ 41744546-5DA7-46AD-81BC-B9B61220893D
+
+
diff --git a/Snippets/gflags list.tmSnippet b/Snippets/gflags list.tmSnippet
new file mode 100644
index 0000000..698c05f
--- /dev/null
+++ b/Snippets/gflags list.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ gflags.DEFINE_list('$1', [], "$2")
+ name
+ gflags define list
+ scope
+ source.python
+ tabTrigger
+ glist
+ uuid
+ 481C41D8-A1AA-47A7-8482-F7E2785B8273
+
+
diff --git a/Snippets/gflags string.tmSnippet b/Snippets/gflags string.tmSnippet
new file mode 100644
index 0000000..d3f2b98
--- /dev/null
+++ b/Snippets/gflags string.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ gflags.DEFINE_string('$1', '$2', "$3")
+ name
+ gflags define string
+ scope
+ source.python
+ tabTrigger
+ gstr
+ uuid
+ 490E6BBD-0075-4BA7-BC5B-B26D5796D956
+
+
diff --git a/Snippets/pdb trace.tmSnippet b/Snippets/pdb trace.tmSnippet
new file mode 100644
index 0000000..1c5f71e
--- /dev/null
+++ b/Snippets/pdb trace.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ import pdb; pdb.set_trace()
+ name
+ pdb.set_trace
+ scope
+ source.python
+ tabTrigger
+ pdb
+ uuid
+ A2BDCF66-4607-4304-B3FE-B2F30E08E4E1
+
+