#!/usr/bin/env python # -*- coding: utf-8 -*- # # # 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 2 of the License, or (at your option) # any later version. # # Please read the COPYING file. # import os import shutil import glob import sys import inspect from distutils.core import setup from distutils.command.install import install sys.path.insert(0, '.') class Install(install): def run(self): if not self.check_clit(): print "Aborting Install" return #or you can do sys.exit(-1) if return doesnt work install.run(self) self.installi18n() self.installdoc() self.installfiles() self.create_menu() self.install_binary() def check_clit(self): if os.path.exists("/usr/bin/clit"): print "clit found..." return True else: return False def installi18n(self): for name in os.listdir('po'): if not name.endswith('.po'): continue lang = name[:-3] print "Installing '%s' translations..." % lang os.popen("msgfmt po/%s.po -o po/%s.mo" % (lang, lang)) if not self.root: self.root = "/" destpath = os.path.join(self.root, "usr/share/locale/%s/LC_MESSAGES" % lang) if not os.path.exists(destpath): os.makedirs(destpath) shutil.copy("po/%s.mo" % lang, os.path.join(destpath, "litconverter.mo")) def installdoc(self): destpath = os.path.join(self.root, "usr/share/doc/litconverter") if not os.path.exists(destpath): os.makedirs(destpath) os.chdir('doc') for files in glob.glob('*'): print 'Installing', files shutil.copy(files, os.path.join(destpath, files)) os.chdir('..') def installfiles(self): destpath = os.path.join(self.root, "usr/share/litconverter") if not os.path.exists(destpath): os.makedirs(destpath) os.chdir('src') for py_files in glob.glob('*.py'): print 'Installing', py_files shutil.copy(py_files, os.path.join(destpath, py_files)) os.chdir('..') def create_menu(self): print 'Creating menu entry...' destpath = os.path.join(self.root, "usr/share/pixmaps") if not os.path.exists(destpath): os.makedirs(destpath) os.chdir('menu') for png_files in glob.glob('*.png'): print 'Installing', png_files shutil.copy(png_files, os.path.join(destpath, png_files)) destpath = os.path.join(self.root, "usr/share/applications") if not os.path.exists(destpath): os.makedirs(destpath) for desktop_files in glob.glob('*.desktop'): print 'Installing', desktop_files shutil.copy(desktop_files, os.path.join(destpath, desktop_files)) os.chdir('..') def install_binary(self): destpath = os.path.join(self.root, "usr/bin") if not os.path.exists(destpath): os.makedirs(destpath) os.chdir('src') for name in glob.glob('*'): if name.endswith('.py'): continue print 'Installing', name os.chmod(name, 0755) shutil.copy(name, os.path.join(destpath, name)) os.chdir('..') setup(name="litconverter", version="1.0", description="Lit (Packages Installed Successfully as Intended)", long_description="PiSi is the package management system of Pardus Linux.", license="GNU GPL2", author="Murat Şenel", author_email="muratasenel@gmail.com", url="http://www.pardus.org.tr/eng/pisi/", package_dir = {'': ''}, cmdclass = {'install' : Install}, )