aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2013-04-04 02:13:43 +0200
committerMarcin Kuzminski <marcin@python-works.com>2013-04-04 02:13:43 +0200
commitcfb3526043e06be6f6d26dc00f7f6fd79713f606 (patch)
tree4020cb058608a89e1a5ae4a960d96afe89ceb1a0
parent91f5818da591970e6ae3ef780d29ea2e0c3c57ee (diff)
ishell paster command
--HG-- branch : beta extra : amend_source : f203cdff0faf35345c0506e5581ae40c304ff7a4
-rw-r--r--rhodecode/lib/paster_commands/ishell.py76
-rwxr-xr-xsetup.py1
2 files changed, 77 insertions, 0 deletions
diff --git a/rhodecode/lib/paster_commands/ishell.py b/rhodecode/lib/paster_commands/ishell.py
new file mode 100644
index 00000000..9080c616
--- /dev/null
+++ b/rhodecode/lib/paster_commands/ishell.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+"""
+ rhodecode.lib.paster_commands.ishell
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ interactive shell paster command for RhodeCode
+
+
+ :created_on: Apr 4, 2013
+ :author: marcink
+ :copyright: (C) 2010-2013 Marcin Kuzminski <marcin@python-works.com>
+ :license: GPLv3, see COPYING for more details.
+"""
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from __future__ import with_statement
+
+import os
+import sys
+import logging
+
+from os.path import dirname as dn, join as jn
+#to get the rhodecode import
+rc_path = dn(dn(dn(os.path.realpath(__file__))))
+sys.path.append(rc_path)
+from rhodecode.lib.utils import BasePasterCommand
+
+
+log = logging.getLogger(__name__)
+
+
+class Command(BasePasterCommand):
+
+ max_args = 1
+ min_args = 1
+
+ usage = "CONFIG_FILE"
+ group_name = "RhodeCode"
+ takes_config_file = -1
+ parser = BasePasterCommand.standard_parser(verbose=True)
+ summary = "Interactive shell"
+
+ def command(self):
+ #get SqlAlchemy session
+ self._init_session()
+
+ # imports, used in ipython shell
+ import os
+ import sys
+ import time
+ import shutil
+ import datetime
+ from rhodecode.model.db import *
+
+ try:
+ from IPython import embed
+ from IPython.config.loader import Config
+ cfg = Config()
+ cfg.InteractiveShellEmbed.confirm_exit = False
+ embed(config=cfg, banner1="RhodeCode IShell.")
+ except ImportError:
+ print 'ipython installation required for ishell'
+ sys.exit(-1)
+
+ def update_parser(self):
+ pass
diff --git a/setup.py b/setup.py
index 2fd287b0..193eb573 100755
--- a/setup.py
+++ b/setup.py
@@ -165,6 +165,7 @@ setup(
make-rcext=rhodecode.lib.paster_commands.make_rcextensions:Command
repo-scan=rhodecode.lib.paster_commands.repo_scan:Command
cache-keys=rhodecode.lib.paster_commands.cache_keys:Command
+ ishell=rhodecode.lib.paster_commands.ishell:Command
make-index=rhodecode.lib.indexers:MakeIndex
upgrade-db=rhodecode.lib.dbmigrate:UpgradeDb
celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand