Ejemplo n.º 1
0
 def edit(self):
     """
     Запуск редактирования INI файла настроек
     """
     ini_file_name = self._get_ini_file_name()
     if ic_file.Exists(ini_file_name):
         cmd = 'gedit %s &' % ini_file_name
         ic_exec.icSysCmd(cmd)
     else:
         io_prnt.outWarning(u'INI файл <%s> не найден' % ini_file_name)
Ejemplo n.º 2
0
    def _makeArchiveZIP(self, TempDir_, PrjName_):
        """
        Заархивировать пакет прикладной системы. Архиватор: ZIP.
        """
        # Заархивировать пакет прикладной системы
        arch_util = 'zip'
        arch_file_name = TempDir_+'/'+PrjName_+'_'+str(self.readPrjVersion())+'.zip'

        arch_cmd = 'cd %s;%s -r %s *' % (TempDir_, arch_util, arch_file_name)
        io_prnt.outLog(u'PUBLIC WIZARD Команда архивации: '+arch_cmd)
        ic_exec.icSysCmd(arch_cmd)
        return arch_file_name
Ejemplo n.º 3
0
 def _makeArchiveRAR(self, MainDir_, TempDir_, PrjName_):
     """
     Заархивировать пакет прикладной системы. Архиватор: RAR.
     """
     # Заархивировать пакет прикладной системы
     arch_util = MainDir_+'/ic/db/postgresql/Rar.exe'
     arch_file_name = TempDir_+'/'+PrjName_+'_'+str(self.readPrjVersion())+'.zip'
     arch_cmd = '%s a -r -s -ep1 -afzip -df %s %s/*.*' % (arch_util,
                                                          arch_file_name, TempDir_)
     io_prnt.outLog(u'PUBLIC WIZARD Команда архивации: '+arch_cmd)
     ic_exec.icSysCmd(arch_cmd)
     return arch_file_name
Ejemplo n.º 4
0
    def _makePrjInstall(self):
        """
        Создание пакета прикладной системы.
        """
        try:
            prj_name = self.getPrjName()
            temp_dir = 'c:/temp/'+prj_name
            if os.path.exists(temp_dir):
                io_prnt.outLog(u'INSTALL WIZARD DELETE TEMP DIR <%s>' % temp_dir)
                ic_file.RemoveTreeDir(temp_dir)
                io_prnt.outLog(u'INSTALL WIZARD DELETE TEMP DIR OK')

            os.makedirs(temp_dir)
            # Скопировать необходимые папки и модули
            # во временную папку
            prj_dir = os.path.dirname(self._prj_dir)
            main_dir = os.path.dirname(prj_dir)
            # Пакет ic
            io_prnt.outLog(u'INSTALL WIZARD COPY ic PACKAGE <%s>' % main_dir)
            ic_tmp_dir = temp_dir+'/ic'
            ic_file.CopyTreeDir(main_dir+'/ic', ic_tmp_dir)
            
            # Условие удаления исходников из ic
            if not self.getOpenSource():
                ic_file.delAllFilesFilter(ic_tmp_dir, '*.py', '*.bak')

            # Пакет прикладной системы
            io_prnt.outLog(u'INSTALL WIZARD COPY %s PACKAGE %s' % (prj_name, prj_dir))
            usr_tmp_dir = temp_dir+'/'+os.path.basename(prj_dir)
            ic_file.CopyTreeDir(prj_dir,
                                temp_dir+'/'+os.path.basename(prj_dir))

            # Все откомпелироавать нехрен
            ic_file.CompileDir(temp_dir)
            
            # Заархивировать пакет прикладной системы
            rar_util = main_dir+'/ic/db/postgresql/Rar.exe'
            arch_file_name = temp_dir+'/'+prj_name+'.exe'
            arch_cmd = '%s a -r -s -ep1 -sfx -df %s %s/*.*' % (rar_util,
                                                               arch_file_name, temp_dir)
            io_prnt.outLog(u'INSTALL WIZARD Команда архивации: <%s>' % arch_cmd)
            ic_exec.icSysCmd(arch_cmd)
            return arch_file_name
        except:
            io_prnt.outErr(u'Ошибка архивации прикладной системы')
Ejemplo n.º 5
0
 def OnHelp(self, event):
     """
     Помощь...
     """
     import ic
     hlp_file_name = os.path.join(os.path.dirname(ic.__file__), 'doc', 'index.html')
     if ic_file.Exists(hlp_file_name):
         if wx.Platform == '__WXMSW__':
             hlp_file_name = os.path.normpath(hlp_file_name)
             ic_exec.icSysCmd('start explorer ' + hlp_file_name)
         elif wx.Platform == '__WXGTK__':
             try:
                 www_browser = os.environ.get('BROWSER', DEFAULT_WWW_BROWSER)
                 ic_exec.icSysCmd(www_browser + ' ' + hlp_file_name)
             except:
                 io_prnt.outErr()
     else:
         ic_dlg.icWarningBox(u'ПОМОЩЬ',
                             u'Файл помощи <%s> не найден. Запустите генерацию документации :-)' % hlp_file_name)
Ejemplo n.º 6
0
def run_wxformbuilder(filename=None):
    """
    Запуск wxFormBuilder.
    @param filename: Файл открываемый в wxFormBuilder.
        Если не указан, то ничего не открывается.
    @return: True/False
    """
    cmd = None
    if os.path.exists('/bin/wxformbuilder') or os.path.exists(
            '/usr/bin/wxformbuilder'):
        cmd = 'wxformbuilder %s&' % filename if filename else 'wxformbuilder &'
    else:
        alter_wxfb_path = filefunc.normal_path(config.ALTER_WXFORMBUILDER)
        if os.path.exists(alter_wxfb_path):
            cmd = '%s %s&' % (alter_wxfb_path, filename
                              ) if filename else '%s &' % alter_wxfb_path
        else:
            log.warning(
                u'Альтернативный путь запуска wxFormBuilder <%s> не найден' %
                alter_wxfb_path)

    if cmd:
        ic_exec.icSysCmd(cmd)
Ejemplo n.º 7
0
    def makeInstallPackage(self):
        """
        Создание инсталяционного пакета.
        """
        install_dir = ic_dlg.icDirDlg(None,
                                      u'Выберите инсталяционную папку',
                                      os.getcwd())
        if os.path.isdir(install_dir):
            try:
                packages = self.getPackages()
                ic_dlg.icOpenProgressDlg(None,
                                         u'Создание инсталяционного пакета проекта',
                                         u'Создание инсталяционного пакета проекта',
                                         0, len(packages)+5)
                i = 0
                # Создать папку пакетов
                os.makedirs(install_dir+'/package')

                # Скопировать иконку
                i += 1
                ic_dlg.icUpdateProgressDlg(i, u'Копирование иконки')
                ico_file = self.getPrjIcon()
                if os.path.exists(ico_file):
                    ic_file.icCopyFile(ico_file,
                                       install_dir+'/'+os.path.basename(ico_file))
                else:
                    io_prnt.outLog(u'Файл иконки <%s> не существует' % ico_file)
                
                # Создание пакета прикладной системы
                i += 1
                ic_dlg.icUpdateProgressDlg(i, u'Создание пакета прикладной системы')
                arch_file = self._makePrjInstall()
                if os.path.exists(arch_file):
                    ic_file.icCopyFile(arch_file,
                                       install_dir+'/package/'+os.path.basename(arch_file))
                    # Удалить временную папку
                    ic_file.RemoveTreeDir(os.path.dirname(arch_file), 1)
                    
                # Скопировать пакеты
                for package in packages:
                    i += 1
                    ic_dlg.icUpdateProgressDlg(i, u'Копирование пакета <%s>' % package)
                    if os.path.exists(package):
                        ic_file.icCopyFile(package,
                                           install_dir+'/package/'+os.path.basename(package))
                    else:
                        io_prnt.outLog(u'Файл пакета <%s> не существует' % package)

                # Сохранить скрипт инсталятора
                i += 1
                ic_dlg.icUpdateProgressDlg(i, u'Создание скрипта инсталятора')
                script = self.installScript()
                try:
                    nsi_file = None
                    nsi_file = open(install_dir+'\setup.nsi', 'w')
                    nsi_file.write(script)
                    nsi_file.close()
                except:
                    io_prnt.outErr(u'Ошибка сохранения скрипта инсталятора')
                    if nsi_file:
                        nsi_file.close()

                # Компилирование скрипта инсталятора
                i += 1
                ic_dlg.icUpdateProgressDlg(i, u'Компилирование скрипта инсталятора')
                nsis_cmd = '%s %s/setup.nsi' % (self.getInstallMaker(), install_dir)
                io_prnt.outLog(u'Компиляция скрипта инсталятора '+nsis_cmd)
                ic_exec.icSysCmd(nsis_cmd)

                ic_dlg.icCloseProgressDlg()
            except:
                io_prnt.outErr(u'Ошибка создания инсталяционного пакета')
                ic_dlg.icCloseProgressDlg()