From a0a3ec83c6550cf58eba514c671e88eacd1206bb Mon Sep 17 00:00:00 2001 From: Jack Stdin Date: Sun, 14 Feb 2016 15:23:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BD=D0=B0=20root=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=91=D0=94=20(=20Fixes?= =?UTF-8?q?=20#5=20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 ++++++++++++++++---- manage.py | 22 ++++++++++++++++++++-- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 601076d..034e7fe 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ sudo apt-get install python-setuptools sudo easy_install pip sudo pip install --upgrade pip ``` + 2. PostgreSql 9.5 и выше (из-за синтаксиса _ON CONFLICT ... DO_) Для Windows, как обычно, [качаем](http://www.enterprisedb.com/products-services-training/pgdownload#windows) - ставим, для Debian: ``` @@ -49,6 +50,7 @@ sudo apt-get update sudo apt-get install postgresql-9.5 ``` Затем создайте пользователя и базу данных. + 3. Sphinx 2.2.1 и новее: [Windows](http://sphinxsearch.com/downloads/release/), Debian: ``` @@ -61,6 +63,7 @@ sudo apt-get install postgresql-server-dev-9.5 make sudo make install ``` + 4. Web-сервер с поддержкой WSGI, любой, по Вашему желанию. ### Windows @@ -77,17 +80,26 @@ python -m pip install https://github.com/Romamo/sphinxapi/zipball/master ``` sudo apt-get install python-dev libxml2 libxml2-dev libxslt-dev ``` -1. Установить unrar (non-free) +2. Установить unrar (non-free) ``` sudo sh -c 'echo deb ftp://ftp.us.debian.org/debian/ stable main non-free > /etc/apt/sources.list.d/non-free.list' sudo apt-get update sudo apt-get install unrar ``` -2. Установить sphinxapi последней версии: +3. Установить sphinxapi последней версии: ``` pip install https://github.com/Romamo/sphinxapi/zipball/master ``` -3. Установить, собственно, нашу штуку: +4. Установить, собственно, приложение: + - полностью: ``` -pip install --target=d:\somewhere\other\than\the\default https://github.com/jar3b/... +sudo mkdir -p /var/www/py-phias +sudo chown www-fias: /var/www/py-phias +wget https://github.com/jar3b/py-phias/archive/v0.0.1.tar.gz +sudo -u www-fias tar xzf v0.0.1.tar.gz -C /var/www/py-phias --strip-components=1 +sudo pip install -r requirements.txt +``` + - как библиотеку: +``` +python -m pip install .... ``` \ No newline at end of file diff --git a/manage.py b/manage.py index 283a74b..cd66262 100644 --- a/manage.py +++ b/manage.py @@ -1,13 +1,24 @@ # -*- coding: utf-8 -*- +import ctypes import logging import optparse +import os import sys from aore.miscutils.sphinx import SphinxHelper from aore.updater.soapreceiver import SoapReceiver from aore.updater.updater import Updater -logging.basicConfig(format='%(asctime)s %(message)s', level=logging.INFO) +logging.basicConfig(format='%(asctime)s %(message)s', level=logging.WARNING) + + +def is_root(): + try: + is_admin = os.getuid() == 0 + except AttributeError: + is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0 + + return is_admin def print_fias_versions(): @@ -92,7 +103,7 @@ def main(): options, arguments = p.parse_args() # if no arguments - if len(sys.argv)<2: + if len(sys.argv) < 2: print("Py-Phias manager. Try manage.py --help for options.") return @@ -103,6 +114,10 @@ def main(): # Manage DB if options.database: + if not is_root(): + print "This option need to be run with elevated privileges." + return + # create new database aoupdater = Updater(options.source) allowed_updates = None @@ -118,6 +133,9 @@ def main(): # Manage Sphinx if options.sphinx and options.indexer_path and options.output_conf: + if not is_root(): + print "This option need to be run with elevated privileges." + return sphinxh = SphinxHelper() sphinxh.configure_indexer(options.indexer_path, options.output_conf)