changeset 552:2642f128ad46

removed egg info, update files for distutils build updated READMES some config files
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 06 Oct 2010 15:37:23 +0200
parents f57aaf673743
children 65c27fd21769
files MANIFEST.in README.rst init.d/rhodecode-daemon init.d/rhodecode-daemon2 init.d/rhodecode_daemon init.d/rhodecode_daemon2 rhodecode.egg-info/PKG-INFO rhodecode.egg-info/SOURCES.txt rhodecode.egg-info/dependency_links.txt rhodecode.egg-info/entry_points.txt rhodecode.egg-info/not-zip-safe rhodecode.egg-info/paster_plugins.txt rhodecode.egg-info/requires.txt rhodecode.egg-info/top_level.txt rhodecode/config/deployment.ini_tmpl rhodecode/lib/db_manage.py rhodecode/lib/utils.py rhodecode/websetup.py setup.py test.ini
diffstat 20 files changed, 254 insertions(+), 255 deletions(-) [+]
line wrap: on
line diff
--- a/MANIFEST.in	Wed Oct 06 11:36:23 2010 +0200
+++ b/MANIFEST.in	Wed Oct 06 15:37:23 2010 +0200
@@ -1,15 +1,23 @@
+include MANIFEST.in
 include COPYING
-include README.rst
+include development.ini
+include production.ini
+
 include rhodecode/config/deployment.ini_tmpl
 
-include rhodecode_daemon
-include rhodecode_daemon2
+#init.d scripts
+include init.d/rhodecode-daemon
+include init.d/rhodecode-daemon2
 
+#celery config
+include celeryconfig.py
+
+#images
 recursive-include rhodecode/public/css *
 recursive-include rhodecode/public/images *
-
+#js
 include rhodecode/public/js/yui2.js
 include rhodecode/public/js/excanvas.min.js
 include rhodecode/public/js/yui.flot.js
-
-recursive-include rhodecode/templates *
\ No newline at end of file
+#templates
+recursive-include rhodecode/templates *
--- a/README.rst	Wed Oct 06 11:36:23 2010 +0200
+++ b/README.rst	Wed Oct 06 15:37:23 2010 +0200
@@ -46,22 +46,34 @@
 Installation
 -------------
 
+quick setup
+ 
+- pip install -E rhodecode-venv http://bitbucket.org/marcinkuzminski/rhodecode/get/tip.zip
+- activate virtualenv
+- run `paster make-config RhodeCode production.ini`
+- run `paster setup-app production.ini`
+- run `paster runserver production.ini`
+
+You're ready to go.
+
+
+MORE DETAILED INSTRUCTIONS
+
 - I highly recommend to install new virtualenv for rhodecode see 
-  http://pypi.python.org/pypi/virtualenv
+  http://pypi.python.org/pypi/virtualenv for more details.
 - Create new virtualenv using `virtualenv --no-site-packages /var/www/rhodecode-venv`
   this will install new virtual env into /var/www/rhodecode-venv. 
   Activate the virtualenv by running 
   `source activate /var/www/rhodecode-venv/bin/activate`   
 - Make a folder for rhodecode somewhere on the filesystem for example /var/www/rhodecode  
-- Download and extract http://bitbucket.org/marcinkuzminski/rhodecode/get/tip.zip
-  into created directory.
-- Run `python setup.py install` in order to install the application and all
-  needed dependencies. Make sure that You're using activated virutalenv  
+- Run easy_install http://bitbucket.org/marcinkuzminski/rhodecode/get/tip.zip.
+- Run `paster make-config RhodeCode production.inii` in order to install 
+  the application config. You can play with the app settings later 
 - Run `paster setup-app production.ini` it should create all needed tables 
   and an admin account make sure You specify correct path to repositories. 
 - Remember that the given path for mercurial repositories must be write 
   accessible for the application
-- Run paster serve development.ini - or you can use sample init.d scripts.
+- Run paster serve production.ini - or you can use sample init.d scripts.
   the app should be available at the 127.0.0.1:5000
 - Use admin account you created to login.
 - Default permissions on each repository is read, and owner is admin. So remember
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/init.d/rhodecode-daemon	Wed Oct 06 15:37:23 2010 +0200
@@ -0,0 +1,61 @@
+#!/sbin/runscript
+########################################
+#### THIS IS AN GENTOO INIT.D SCRIPT####
+########################################
+
+APP_NAME="rhodecode"
+APP_HOMEDIR="marcink/python_workspace"
+APP_PATH="/home/$APP_HOMEDIR/$APP_NAME"
+
+CONF_NAME="production.ini"
+
+PID_PATH="$APP_PATH/$APP_NAME.pid"
+LOG_PATH="$APP_PATH/$APP_NAME.log"
+
+PYTHON_PATH="/home/$APP_HOMEDIR/v-env"
+
+RUN_AS="marcink"
+
+DAEMON="$PYTHON_PATH/bin/paster"
+
+DAEMON_OPTS="serve --daemon \
+--user=$RUN_AS \
+--group=$RUN_AS \
+--pid-file=$PID_PATH \
+--log-file=$LOG_PATH  $APP_PATH/$CONF_NAME"
+
+#extra options
+opts="${opts} restartdelay"
+
+depend() {
+    need nginx
+}
+
+start() {
+    ebegin "Starting $APP_NAME"
+    start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \
+        --start --quiet \
+        --pidfile $PID_PATH \
+        --user $RUN_AS \
+        --exec $DAEMON -- $DAEMON_OPTS
+    eend $?
+}
+
+stop() {
+    ebegin "Stopping $APP_NAME"
+    start-stop-daemon -d $APP_PATH \
+        --stop --quiet \
+        --pidfile $PID_PATH || echo "$APP_NAME - Not running!"
+    if [ -f $PID_PATH ]; then
+        rm $PID_PATH
+    fi
+    eend $?
+}
+
+restartdelay() {
+    #stop()
+    echo "sleep3"
+    sleep 3
+    
+    #start()
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/init.d/rhodecode-daemon2	Wed Oct 06 15:37:23 2010 +0200
@@ -0,0 +1,77 @@
+#!/bin/sh -e
+########################################
+#### THIS IS AN DEBIAN INIT.D SCRIPT####
+########################################
+
+### BEGIN INIT INFO
+# Provides:          rhodecode          
+# Required-Start:    $all
+# Required-Stop:     $all
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: starts instance of rhodecode
+# Description:       starts instance of rhodecode using start-stop-daemon
+### END INIT INFO
+
+APP_NAME="rhodecode"
+APP_HOMEDIR="marcink/python_workspace"
+APP_PATH="/home/$APP_HOMEDIR/$APP_NAME"
+
+CONF_NAME="production.ini"
+
+PID_PATH="$APP_PATH/$APP_NAME.pid"
+LOG_PATH="$APP_PATH/$APP_NAME.log"
+
+PYTHON_PATH="/home/$APP_HOMEDIR/v-env"
+
+RUN_AS="marcink"
+
+DAEMON="$PYTHON_PATH/bin/paster"
+
+DAEMON_OPTS="serve --daemon \
+--user=$RUN_AS \
+--group=$RUN_AS \
+--pid-file=$PID_PATH \
+--log-file=$LOG_PATH  $APP_PATH/$CONF_NAME"
+
+
+case "$1" in
+  start)
+    echo "Starting $APP_NAME"
+    start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \
+        --start --quiet \
+        --pidfile $PID_PATH \
+        --user $RUN_AS \
+        --exec $DAEMON -- $DAEMON_OPTS
+    ;;
+  stop)
+    echo "Stopping $APP_NAME"
+    start-stop-daemon -d $APP_PATH \
+        --stop --quiet \
+        --pidfile $PID_PATH || echo "$APP_NAME - Not running!"
+    if [ -f $PID_PATH ]; then
+        rm $PID_PATH
+    fi
+    ;;
+  restart)
+    echo "Restarting $APP_NAME"
+    ### stop ###
+    echo "Stopping $APP_NAME"
+    start-stop-daemon -d $APP_PATH \
+        --stop --quiet \
+        --pidfile $PID_PATH || echo "$APP_NAME - Not running!"
+    if [ -f $PID_PATH ]; then
+        rm $PID_PATH
+    fi
+    ### start ###
+    echo "Starting $APP_NAME"
+    start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \
+        --start --quiet \
+        --pidfile $PID_PATH \
+        --user $RUN_AS \
+        --exec $DAEMON -- $DAEMON_OPTS
+    ;;
+  *)
+    echo "Usage: $0 {start|stop|restart}"
+    exit 1
+esac
\ No newline at end of file
--- a/init.d/rhodecode_daemon	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#!/sbin/runscript
-########################################
-#### THIS IS AN GENTOO INIT.D SCRIPT####
-########################################
-
-APP_NAME="rhodecode"
-APP_HOMEDIR="marcink/python_workspace"
-APP_PATH="/home/$APP_HOMEDIR/$APP_NAME"
-
-CONF_NAME="production.ini"
-
-PID_PATH="$APP_PATH/$APP_NAME.pid"
-LOG_PATH="$APP_PATH/$APP_NAME.log"
-
-PYTHON_PATH="/home/$APP_HOMEDIR/v-env"
-
-RUN_AS="marcink"
-
-DAEMON="$PYTHON_PATH/bin/paster"
-
-DAEMON_OPTS="serve --daemon \
---user=$RUN_AS \
---group=$RUN_AS \
---pid-file=$PID_PATH \
---log-file=$LOG_PATH  $APP_PATH/$CONF_NAME"
-
-#extra options
-opts="${opts} restartdelay"
-
-depend() {
-    need nginx
-}
-
-start() {
-    ebegin "Starting $APP_NAME"
-    start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \
-        --start --quiet \
-        --pidfile $PID_PATH \
-        --user $RUN_AS \
-        --exec $DAEMON -- $DAEMON_OPTS
-    eend $?
-}
-
-stop() {
-    ebegin "Stopping $APP_NAME"
-    start-stop-daemon -d $APP_PATH \
-        --stop --quiet \
-        --pidfile $PID_PATH || echo "$APP_NAME - Not running!"
-    if [ -f $PID_PATH ]; then
-        rm $PID_PATH
-    fi
-    eend $?
-}
-
-restartdelay() {
-    #stop()
-    echo "sleep3"
-    sleep 3
-    
-    #start()
-}
--- a/init.d/rhodecode_daemon2	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-#!/bin/sh -e
-########################################
-#### THIS IS AN DEBIAN INIT.D SCRIPT####
-########################################
-
-### BEGIN INIT INFO
-# Provides:          rhodecode          
-# Required-Start:    $all
-# Required-Stop:     $all
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: starts instance of rhodecode
-# Description:       starts instance of rhodecode using start-stop-daemon
-### END INIT INFO
-
-APP_NAME="rhodecode"
-APP_HOMEDIR="marcink/python_workspace"
-APP_PATH="/home/$APP_HOMEDIR/$APP_NAME"
-
-CONF_NAME="production.ini"
-
-PID_PATH="$APP_PATH/$APP_NAME.pid"
-LOG_PATH="$APP_PATH/$APP_NAME.log"
-
-PYTHON_PATH="/home/$APP_HOMEDIR/v-env"
-
-RUN_AS="marcink"
-
-DAEMON="$PYTHON_PATH/bin/paster"
-
-DAEMON_OPTS="serve --daemon \
---user=$RUN_AS \
---group=$RUN_AS \
---pid-file=$PID_PATH \
---log-file=$LOG_PATH  $APP_PATH/$CONF_NAME"
-
-
-case "$1" in
-  start)
-    echo "Starting $APP_NAME"
-    start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \
-        --start --quiet \
-        --pidfile $PID_PATH \
-        --user $RUN_AS \
-        --exec $DAEMON -- $DAEMON_OPTS
-    ;;
-  stop)
-    echo "Stopping $APP_NAME"
-    start-stop-daemon -d $APP_PATH \
-        --stop --quiet \
-        --pidfile $PID_PATH || echo "$APP_NAME - Not running!"
-    if [ -f $PID_PATH ]; then
-        rm $PID_PATH
-    fi
-    ;;
-  restart)
-    echo "Restarting $APP_NAME"
-    ### stop ###
-    echo "Stopping $APP_NAME"
-    start-stop-daemon -d $APP_PATH \
-        --stop --quiet \
-        --pidfile $PID_PATH || echo "$APP_NAME - Not running!"
-    if [ -f $PID_PATH ]; then
-        rm $PID_PATH
-    fi
-    ### start ###
-    echo "Starting $APP_NAME"
-    start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \
-        --start --quiet \
-        --pidfile $PID_PATH \
-        --user $RUN_AS \
-        --exec $DAEMON -- $DAEMON_OPTS
-    ;;
-  *)
-    echo "Usage: $0 {start|stop|restart}"
-    exit 1
-esac
\ No newline at end of file
--- a/rhodecode.egg-info/PKG-INFO	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-Metadata-Version: 1.0
-Name: sample-app
-Version: 0.1dev
-Summary: UNKNOWN
-Home-page: UNKNOWN
-Author: UNKNOWN
-Author-email: UNKNOWN
-License: UNKNOWN
-Description: UNKNOWN
-Platform: UNKNOWN
--- a/rhodecode.egg-info/SOURCES.txt	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-MANIFEST.in
-README.txt
-setup.cfg
-setup.py
-rhodecode/__init__.py
-rhodecode/websetup.py
-rhodecode.egg-info/PKG-INFO
-rhodecode.egg-info/SOURCES.txt
-rhodecode.egg-info/dependency_links.txt
-rhodecode.egg-info/entry_points.txt
-rhodecode.egg-info/not-zip-safe
-rhodecode.egg-info/paster_plugins.txt
-rhodecode.egg-info/requires.txt
-rhodecode.egg-info/top_level.txt
-rhodecode/config/__init__.py
-rhodecode/config/deployment.ini_tmpl
-rhodecode/config/environment.py
-rhodecode/config/middleware.py
-rhodecode/config/routing.py
-rhodecode/controllers/__init__.py
-rhodecode/controllers/error.py
-rhodecode/lib/__init__.py
-rhodecode/lib/app_globals.py
-rhodecode/lib/base.py
-rhodecode/lib/helpers.py
-rhodecode/model/__init__.py
-rhodecode/public/bg.png
-rhodecode/public/favicon.ico
-rhodecode/public/index.html
-rhodecode/public/pylons-logo.gif
-rhodecode/tests/__init__.py
-rhodecode/tests/test_models.py
-rhodecode/tests/functional/__init__.py
\ No newline at end of file
--- a/rhodecode.egg-info/dependency_links.txt	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-
--- a/rhodecode.egg-info/entry_points.txt	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-
-    [paste.app_factory]
-    main = rhodecode.config.middleware:make_app
-
-    [paste.app_install]
-    main = pylons.util:PylonsInstaller
-    
\ No newline at end of file
--- a/rhodecode.egg-info/not-zip-safe	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-
--- a/rhodecode.egg-info/paster_plugins.txt	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-PasteScript
-Pylons
--- a/rhodecode.egg-info/requires.txt	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Pylons>=0.9.7
\ No newline at end of file
--- a/rhodecode.egg-info/top_level.txt	Wed Oct 06 11:36:23 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-rhodecode
--- a/rhodecode/config/deployment.ini_tmpl	Wed Oct 06 11:36:23 2010 +0200
+++ b/rhodecode/config/deployment.ini_tmpl	Wed Oct 06 15:37:23 2010 +0200
@@ -1,6 +1,6 @@
 ################################################################################
 ################################################################################
-# rhodecode - Pylons environment configuration                                    #
+# rhodecode - Pylons environment configuration                                 #
 #                                                                              # 
 # The %(here)s variable will be replaced with the parent directory of this file#
 ################################################################################
@@ -9,8 +9,8 @@
 debug = true
 ################################################################################
 ## Uncomment and replace with the address which should receive                ## 
-## any error reports after application crash								  ##
-## Additionally those settings will be used by rhodecode mailing system          ##
+## any error reports after application crash                                  ##
+## Additionally those settings will be used by rhodecode mailing system       ##
 ################################################################################
 #email_to = admin@localhost
 #error_email_from = paste_error@localhost
@@ -35,12 +35,12 @@
 
 use = egg:Paste#http
 host = 127.0.0.1
-port = 8001
+port = 5000
 
 [app:main]
 use = egg:rhodecode
 full_stack = true
-static_files = false
+static_files = true
 lang=en
 cache_dir = %(here)s/data
 app_instance_uuid = ${app_instance_uuid}
--- a/rhodecode/lib/db_manage.py	Wed Oct 06 11:36:23 2010 +0200
+++ b/rhodecode/lib/db_manage.py	Wed Oct 06 15:37:23 2010 +0200
@@ -28,8 +28,6 @@
 import os
 import sys
 import uuid
-ROOT = dn(dn(dn(os.path.realpath(__file__))))
-sys.path.append(ROOT)
 
 from rhodecode.lib.auth import get_crypt_password
 from rhodecode.lib.utils import ask_ok
@@ -43,20 +41,22 @@
 log = logging.getLogger(__name__)
 
 class DbManage(object):
-    def __init__(self, log_sql, dbname, tests=False):
+    def __init__(self, log_sql, dbname, root, tests=False):
         self.dbname = dbname
         self.tests = tests
-        dburi = 'sqlite:////%s' % jn(ROOT, self.dbname)
+        self.root = root
+        dburi = 'sqlite:////%s' % jn(self.root, self.dbname)
         engine = create_engine(dburi, echo=log_sql) 
         init_model(engine)
         self.sa = meta.Session
         self.db_exists = False
     
     def check_for_db(self, override):
-        log.info('checking for exisiting db')
-        if os.path.isfile(jn(ROOT, self.dbname)):
+        db_path = jn(self.root, self.dbname)
+        log.info('checking for existing db in %s', db_path)
+        if os.path.isfile(db_path):
             self.db_exists = True
-            log.info('database exisist')
+            log.info('database exist')
             if not override:
                 raise Exception('database already exists')
 
@@ -66,7 +66,7 @@
         """
         self.check_for_db(override)
         if override:
-            log.info("database exisist and it's going to be destroyed")
+            log.info("database exist and it's going to be destroyed")
             if self.tests:
                 destroy = True
             else:
@@ -74,7 +74,7 @@
             if not destroy:
                 sys.exit()
             if self.db_exists and destroy:
-                os.remove(jn(ROOT, self.dbname))
+                os.remove(jn(self.root, self.dbname))
         checkfirst = not override
         meta.Base.metadata.create_all(checkfirst=checkfirst)
         log.info('Created tables for %s', self.dbname)
@@ -84,6 +84,10 @@
             import getpass
             username = raw_input('Specify admin username:')
             password = getpass.getpass('Specify admin password:')
+            confirm = getpass.getpass('Confirm password:')
+            if password != confirm:
+                log.error('passwords mismatch')
+                sys.exit()
             email = raw_input('Specify admin email:')
             self.create_user(username, password, email, True)
         else:
--- a/rhodecode/lib/utils.py	Wed Oct 06 11:36:23 2010 +0200
+++ b/rhodecode/lib/utils.py	Wed Oct 06 15:37:23 2010 +0200
@@ -467,9 +467,11 @@
     log.addHandler(ch)
     
     #PART ONE create db
-    log.debug('making test db')
+    log.debug('making test db in %s', repos_test_path)
     dbname = config['sqlalchemy.db1.url'].split('/')[-1]
-    dbmanage = DbManage(log_sql=True, dbname=dbname, tests=True)
+    
+    dbmanage = DbManage(log_sql=True, dbname=dbname, root=config['here'],
+                        tests=True)
     dbmanage.create_tables(override=True)
     dbmanage.config_prompt(repos_test_path)
     dbmanage.create_default_user()
--- a/rhodecode/websetup.py	Wed Oct 06 11:36:23 2010 +0200
+++ b/rhodecode/websetup.py	Wed Oct 06 15:37:23 2010 +0200
@@ -1,32 +1,44 @@
 """Setup the rhodecode application"""
-
-from os.path import dirname as dn
+from os.path import dirname as dn, join as jn
 from rhodecode.config.environment import load_environment
 from rhodecode.lib.db_manage import DbManage
 import logging
 import os
-import sys
+import shutil
 
 log = logging.getLogger(__name__)
-
-ROOT = dn(dn(os.path.realpath(__file__)))
-sys.path.append(ROOT)
-
+ROOT = dn(os.path.realpath(__file__))
 
 def setup_app(command, conf, vars):
     """Place any commands to setup rhodecode here"""
-    log_sql = True
-    tests = False
-    REPO_TEST_PATH = None
-    
+    print dn(os.path.realpath(__file__))
+    print(ROOT)
     dbname = os.path.split(conf['sqlalchemy.db1.url'])[-1] 
-    
-    dbmanage = DbManage(log_sql, dbname, tests)
+    dbmanage = DbManage(log_sql=True, dbname=dbname, root=conf['here'],
+                         tests=False)
     dbmanage.create_tables(override=True)
-    dbmanage.config_prompt(REPO_TEST_PATH)
+    dbmanage.config_prompt(None)
     dbmanage.create_default_user()
     dbmanage.admin_prompt()
     dbmanage.create_permissions()
     dbmanage.populate_default_permissions()
-    load_environment(conf.global_conf, conf.local_conf, initial=True)
+    
+    celeryconfig_file = 'celeryconfig.py'
+    
+    celeryconfig_path = jn(ROOT, celeryconfig_file)
+    
+        
+    if not os.path.isfile(jn(conf['here'], celeryconfig_file)):
+        try:
+            shutil.copy(celeryconfig_path, conf['here'])
+        except IOError:
+            log.error('failed to copy celeryconfig.py from source %s ' 
+                      ' to this directory please copy it manually ',
+                      celeryconfig_path)
+        else:       
+            load_environment(conf.global_conf, conf.local_conf, initial=True)
 
+
+
+
+
--- a/setup.py	Wed Oct 06 11:36:23 2010 +0200
+++ b/setup.py	Wed Oct 06 15:37:23 2010 +0200
@@ -1,4 +1,31 @@
 from rhodecode import get_version
+
+
+requirements = [
+        "Pylons>=1.0.0",
+        "SQLAlchemy>=0.6",
+        "babel",
+        "Mako>=0.3.2",
+        "vcs>=0.1.7",
+        "pygments>=1.3.0",
+        "mercurial>=1.6",
+        "pysqlite",
+        "whoosh==1.0.0",
+        "py-bcrypt",
+        "celery",
+    ]
+
+#additional files for project
+data_files = [
+              ('init.d', ['init.d/rhodecode-daemon',
+                          'init.d/rhodecode-daemon2',
+                          'init.d/celeryd']),
+              ('', ['celeryconfig.py', 'production.ini', 'development.ini']),
+              ]
+
+
+long_description = '\n' + open('README.rst').read()
+
 try:
     from setuptools import setup, find_packages
 except ImportError:
@@ -7,28 +34,18 @@
     from setuptools import setup, find_packages
 
 setup(
-    name='RhodeCode-%s' % get_version(),
+    name='RhodeCode',
     version=get_version(),
     description='Mercurial repository serving and browsing app',
+    long_description=long_description,
     keywords='mercurial web hgwebdir replacement serving hgweb rhodecode',
     license='BSD',
-    author='marcin kuzminski',
+    author='Marcin Kuzminski',
     author_email='marcin@python-works.com',
     url='http://hg.python-works.com',
-    install_requires=[
-        "Pylons>=1.0.0",
-        "SQLAlchemy>=0.6",
-        "babel",
-        "Mako>=0.3.2",
-        "vcs>=0.1.7",
-        "pygments>=1.3.0",
-        "mercurial>=1.6",
-        "pysqlite",
-        "whoosh==1.0.0b20",
-        "py-bcrypt",
-        "celery",
-    ],
+    install_requires=requirements,
     setup_requires=["PasteScript>=1.6.3"],
+    data_files=data_files,
     packages=find_packages(exclude=['ez_setup']),
     include_package_data=True,
     test_suite='nose.collector',
--- a/test.ini	Wed Oct 06 11:36:23 2010 +0200
+++ b/test.ini	Wed Oct 06 15:37:23 2010 +0200
@@ -1,6 +1,6 @@
 ################################################################################
 ################################################################################
-# rhodecode - Pylons environment configuration                                    #
+# rhodecode - Pylons environment configuration                                 #
 #                                                                              # 
 # The %(here)s variable will be replaced with the parent directory of this file#
 ################################################################################
@@ -9,8 +9,8 @@
 debug = true
 ################################################################################
 ## Uncomment and replace with the address which should receive                ## 
-## any error reports after application crash								  ##
-## Additionally those settings will be used by rhodecode mailing system          ##
+## any error reports after application crash                                  ##
+## Additionally those settings will be used by rhodecode mailing system       ##
 ################################################################################
 #email_to = admin@localhost
 #error_email_from = paste_error@localhost