def handleOneIndex(indexpath, subdir, indexname, fast): print(indexpath, subdir, indexname) indexstatuspath = indexpath + config.getStatusPostfix() indexstatus = utils.load_status(indexstatuspath) if not utils.check_epoch(indexstatus, 'Prepare'): raise utils.EpochError('Please prepare first.\n') if utils.check_epoch(indexstatus, 'Populate'): return workdir = config.getWordRecognizerDir() + os.sep + \ subdir + os.sep + indexname print(workdir) shmdir = config.getInMemoryFileSystem() for i in range(1, N + 1): if fast: #copy file filename = config.getNgramFileName(i) filepath = workdir + os.sep + filename shmfilepath = shmdir + os.sep + filename utils.copyfile(filepath, shmfilepath) handleOnePass(indexpath, shmdir, i) pruneNgramTable(indexpath, shmdir, i) utils.copyfile(shmfilepath, filepath) os.unlink(shmfilepath) else: handleOnePass(indexpath, workdir, i) pruneNgramTable(indexpath, workdir, i) #sign epoch utils.sign_epoch(indexstatus, 'Populate') utils.store_status(indexstatuspath, indexstatus)
def copy_common(dst_root, params={}): if params.get('required'): copyfile(params['src_path'], os.path.join(dst_root, params['dst_path'])) return for key in params: if not isinstance(params[key], dict): continue copy_common(dst_root, params[key])
def prepare_packages_posix(self, vars): if sys.platform.startswith('linux'): # patchelf -> Shiboken/patchelf copyfile( "{script_dir}/patchelf", "{dist_dir}/Shiboken/patchelf", vars=vars) so_ext = '.so' so_star = so_ext + '.*' elif sys.platform == 'darwin': so_ext = '.dylib' so_star = so_ext makefile( "{dist_dir}/Shiboken/__init__.py", content="__all__ = ['shiboken']", vars=vars) # <build>/shiboken/doc/html/* -> <setup>/Shiboken/docs/shiboken copydir( "{build_dir}/shiboken/doc/html", "{dist_dir}/Shiboken/docs/shiboken", force=False, vars=vars) # <install>/lib/site-packages/shiboken.so -> <setup>/Shiboken/shiboken.so copyfile( "{site_packages_dir}/shiboken.so", "{dist_dir}/Shiboken/shiboken.so", vars=vars) # <install>/bin/* -> Shiboken/ copydir( "{install_dir}/bin/", "{dist_dir}/Shiboken", filter=[ "shiboken", ], recursive=False, vars=vars) # <install>/lib/lib* -> Shiboken/ copydir( "{install_dir}/lib/", "{dist_dir}/Shiboken", filter=[ "libshiboken*" + so_star, ], recursive=False, vars=vars) # <install>/include/* -> <setup>/Shiboken/include copydir( "{install_dir}/include", "{dist_dir}/Shiboken/include", vars=vars) # Copy Qt libs to package if OPTION_STANDALONE: if sys.platform == 'darwin': raise RuntimeError('--standalone not yet supported for OSX') # <qt>/lib/* -> <setup>/Shiboken copydir("{qt_lib_dir}", "{dist_dir}/Shiboken", filter=[ "libQtCore*.so.?", "libQtXml*.so.?", ], recursive=False, vars=vars)
def copy_derivative_cmtfile(cmtfile_prefix, destdir): if not os.path.exists(destdir): os.makedirs(destdir) exts = ("", "_Mrr", "_Mtt", "_Mpp", "_Mrt", "_Mrp", "_Mtp", "_dep", "_lat", "_lon") for _ext in exts: cmtfile = cmtfile_prefix + _ext destcmt = os.path.join(destdir, os.path.basename(cmtfile)) copyfile(cmtfile, destcmt)
def copy_calibration_script(circuitpython_drive): print(f"Copying calibration script to {circuitpython_drive}") if not os.path.exists(os.path.join(circuitpython_drive, "code-bak.py")): utils.copyfile( os.path.join(circuitpython_drive, "code.py"), os.path.join(circuitpython_drive, "code-bak.py")) utils.copyfile( os.path.join(os.path.dirname(__file__), "calibration_cpy_code.py"), os.path.join(circuitpython_drive, "code.py"))
def copyoutInMemoryFile(modelfile): inmemoryfile = os.path.join\ (config.getInMemoryFileSystem(), inMemoryFile) inmemoryreportfile = inmemoryfile + config.getReportPostfix() reportfile = modelfile + config.getReportPostfix() if os.access(inmemoryfile, os.F_OK): utils.copyfile(inmemoryfile, modelfile) if os.access(inmemoryreportfile, os.F_OK): utils.copyfile(inmemoryreportfile, reportfile)
def main(self): rkpihdr = { 'sampleformat': self._SAMPLEFORMATS.index(self.args.pcm_sampleformat) + 1, 'compression': self._COMPRESSORS.index(self.args.rkpi_compression), 'bytedepth': self.args.pcm_bytedepth, 'samplerate': self.args.pcm_samplerate, 'channellayout': self.args.pcm_channellayout, 'endianness': int(self.args.pcm_endianness), 'channels': self.args.pcm_channels } # override bytedepth if the sampleformat forces so. if self.args.pcm_sampleformat in ('adpcm', 'a-law', 'mu-law'): rkpihdr['bytedepth'] = 1 # write out the header to file, doesn’t care about the # raw data in the file as there’s no size info. self.args.file_out.write(self._encode_rkpi_hdr(rkpihdr)) if self.args.rkpi_compression == 'none': if copyfile(self.args.file_in, self.args.file_out) == 0: stderr.write("Can’t do IO.") else: _COMPDS = partial(maprange, self.args.rkpi_compression_density, 100j) data_copied = 0 # how many bytes were copied compression. # Zstandard compressor. if rkpihdr['compression'] == 0b01: data_copied = copyfilemap( self.args.file_in, self.args.file_out, zstandard.ZstdCompressor(level=_COMPDS(1 + 22j)).compress) # Brotli compressor. if rkpihdr['compression'] == 0b10: comp = brotli.Compressor(quality=_COMPDS(11j), lgwin=24) data_copied = copyfilemap(self.args.file_in, self.args.file_out, comp.compress) data_copied += self.args.file_out.write(comp.finish()) # LZMA compressor. elif rkpihdr['compression'] == 0b11: data_copied = copyfile(self.args.file_in, lzma.LZMAFile(self.args.file_out, 'w')) if data_copied == 0: stderr.write("Compressor failed or can’t do IO.")
def main(self): rkpihdr = self._decode_rkpi_header(self.args.file_in.read(10)) if rkpihdr is None: print("Reekpie header not found or incomplete.") exit() # dump information to the TTY for describing the # aspects of the PCM data (as this is required # for parsing). NOTE: Put that into STDERR to avoid # it being piped with a program or a file by default. stderr.write(( "Sampleformat: {sample_format}\n" "Compression: {compression}\n" f"Bytedepth: {rkpihdr['bytedepth']}\n" f"Samplerate: {rkpihdr['samplerate']}\n" "Channellayout: {channel_layout}\n" "Endianness: {endianness}\n" f"Channels: {rkpihdr['channels']}\n").format_map({ 'channel_layout': ('interleaved', 'planar') \ [rkpihdr['channellayout']], 'endianness': ('little', 'big') \ [rkpihdr['endianness']], 'sample_format': ('unknown', 'unsigned', 'signed', 'float', 'adpcm', 'mu-law', 'a-law') \ [rkpihdr['sampleformat']], 'compression': ('none', 'zstd', 'brotli', 'lzma') \ [rkpihdr['compression']] })) if self.args.do_decompress or rkpihdr['compression'] == 0b00: if copyfile(self.args.file_in, self.args.file_out) == 0: stderr.write("Can’t do IO.") else: data_copied = 0 # how many bytes were copied during decompression. # Zstandard decompressor. if rkpihdr['compression'] == 0b01: data_copied = copyfile( zstandard.ZstdDecompressor().stream_reader( self.args.file_in), self.args.file_out) # Brotli decompressor. elif rkpihdr['compression'] == 0b10: data_copied = copyfilemap(self.args.file_in, self.args.file_out, brotli.Decompressor().decompress) # LZMA decompressor. elif rkpihdr['compression'] == 0b11: data_copied = copyfile(lzma.LZMAFile(self.args.file_in), self.args.file_out) if data_copied == 0: stderr.write("Decompressor failed or can’t do IO.")
def copy_cmtfiles(_event, cmtfolder, targetcmtdir, generate_deriv_cmt, deriv_cmt_list): origincmt = os.path.join(cmtfolder, _event) targetcmt = os.path.join(targetcmtdir, _event) copyfile(origincmt, targetcmt, verbose=False) if not generate_deriv_cmt: # copy deriv cmt files for deriv_type in deriv_cmt_list: derivcmt = os.path.join(cmtfolder, "%s_%s" % (_event, deriv_type)) targetcmt = os.path.join(targetcmtdir, "%s_%s" % (_event, deriv_type)) copyfile(derivcmt, targetcmt, verbose=False) else: # copy scripts to generate deriv cmt files copytree("job_running_template/perturb_cmt", os.path.dirname(targetcmtdir))
def create_job_folder(template_folder, tag, eventlist_dict, cmtfolder, stafolder, generate_deriv_cmt, deriv_cmt_list): targetdir_list = [] print("*" * 20 + "\nCreat job sub folder") for _i in range(len(eventlist_dict)): idx = _i + 1 targetdir = "job_" + tag + "_%02d" % idx targetdir_list.append(targetdir) check_job_folder_exist(targetdir_list) for _i, targetdir in enumerate(targetdir_list): idx = _i + 1 print("=" * 5 + "\nJob id: %d" % idx) # copy eventlist file eventlist_file = eventlist_dict[idx] targetfile = os.path.join(targetdir, "XEVENTID") copyfile(eventlist_file, targetfile) # copy original cmt file and station file targetcmtdir = os.path.join(targetdir, "cmtfile") targetstadir = os.path.join(targetdir, "station") print("copy cmt:[%s --> %s]" % (cmtfolder, targetcmtdir)) print("copy stattion:[%s --> %s]" % (stafolder, targetstadir)) events = read_txt_into_list(eventlist_file) for _event in events: copy_cmtfiles(_event, cmtfolder, targetcmtdir, generate_deriv_cmt, deriv_cmt_list) copy_stations(_event, stafolder, targetstadir) print("Copy dir:[%s --> %s]" % (template_folder, targetdir)) # copy scripts template copytree(template_folder, targetdir) # copy config.yaml file copyfile("config.yml", os.path.join(targetdir, "config.yml"))
def create_job_folder(template_folder, tag, eventlist_dict, cmtfolder, stafolder, generate_deriv_cmt, deriv_cmt_list): targetdir_list = [] print("*"*20 + "\nCreat job sub folder") for _i in range(len(eventlist_dict)): idx = _i + 1 targetdir = "job_" + tag + "_%02d" % idx targetdir_list.append(targetdir) check_job_folder_exist(targetdir_list) for _i, targetdir in enumerate(targetdir_list): idx = _i + 1 print("="*5 + "\nJob id: %d" % idx) # copy eventlist file eventlist_file = eventlist_dict[idx] targetfile = os.path.join(targetdir, "XEVENTID") copyfile(eventlist_file, targetfile) # copy original cmt file and station file targetcmtdir = os.path.join(targetdir, "cmtfile") targetstadir = os.path.join(targetdir, "station") print("copy cmt:[%s --> %s]" % (cmtfolder, targetcmtdir)) print("copy stattion:[%s --> %s]" % (stafolder, targetstadir)) events = read_txt_into_list(eventlist_file) for _event in events: copy_cmtfiles(_event, cmtfolder, targetcmtdir, generate_deriv_cmt, deriv_cmt_list) copy_stations(_event, stafolder, targetstadir) print("Copy dir:[%s --> %s]" % (template_folder, targetdir)) # copy scripts template copytree(template_folder, targetdir) # copy config.yaml file copyfile("config.yml", os.path.join(targetdir, "config.yml"))
def gfs_to_cache(source_folder: Union[Path, str], func_filter: Callable[[Path], bool] = None) -> Path: """将指定目录中的指定文件夹下的gfs文件复制到缓存 返回目标文件夹Path对象""" files = list(Path(source_folder).glob('gfs.*')) if func_filter is not None: files = [x for x in files if func_filter(x)] dest_folder = config.CACHE_PATH / 'fragments' / 'source' if not dest_folder.exists(): dest_folder.mkdir(parents=True) meta_file = dest_folder / 'meta.json' if meta_file.exists(): with open(meta_file) as f: meta = json.load(f) source_changed = (meta['source'] != str(source_folder)) else: source_changed = True dest_remain = list(dest_folder.glob('gfs.*')) if source_changed: logger.info('数据源变化 清除残留数据...') for remain in dest_remain: os.remove(remain) for i, source in enumerate(files): dest_name = dest_folder / source.name if dest_name.exists(): continue logger.info(f'文件复制中... {i + 1}/{len(files)}') logger.debug(f'复制文件 {str(source)}') utils.copyfile(source, dest_name) with open(meta_file, 'w') as f: json.dump({'source': str(source_folder)}, f) logger.info('文件复制完成') return dest_folder
def prepare_packages_win32(self, vars): makefile( "{dist_dir}/Shiboken/__init__.py", content="__all__ = ['shiboken']", vars=vars) pdbs = ['*.pdb'] if self.debug or self.build_type == 'RelWithDebInfo' else [] # <build>/shiboken/doc/html/* -> <setup>/Shiboken/docs/shiboken copydir( "{build_dir}/shiboken/doc/html", "{dist_dir}/Shiboken/docs/shiboken", force=False, vars=vars) # <install>/lib/site-packages/shiboken.pyd -> <setup>/Shiboken/shiboken.pyd copyfile( "{site_packages_dir}/shiboken{dbgPostfix}.pyd", "{dist_dir}/Shiboken/shiboken{dbgPostfix}.pyd", vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken/shibokenmodule/shiboken{dbgPostfix}.pdb", "{dist_dir}/Shiboken/shiboken{dbgPostfix}.pdb", vars=vars) # <install>/bin/*.exe,*.dll,*.pdb -> Shiboken/ copydir( "{install_dir}/bin/", "{dist_dir}/Shiboken", filter=["*.exe", "*.dll"] + pdbs, recursive=False, vars=vars) # <install>/lib/*.lib -> Shiboken/ copydir( "{install_dir}/lib/", "{dist_dir}/Shiboken", filter=["*.lib"], recursive=False, vars=vars) # <install>/include/* -> <setup>/Shiboken/include copydir( "{install_dir}/include", "{dist_dir}/Shiboken/include", vars=vars) # <qt>/bin/*.dll -> <setup>/Shiboken copydir("{qt_bin_dir}", "{dist_dir}/Shiboken", filter=[ "QtCore4.dll", "QtXml4.dll"], recursive=False, vars=vars) if self.debug: # <qt>/bin/*d4.dll -> <setup>/Shiboken copydir("{qt_bin_dir}", "{dist_dir}/Shiboken", filter=["QtCored4.dll", "QtXmld4.dll"] + pdbs, recursive=False, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*.pdb -> <setup>/Shiboken copydir("{qt_lib_dir}", "{dist_dir}/Shiboken", filter=["QtCore*.pdb", "QtXml*.pdb"], recursive=False, vars=vars) # pdb files for libshiboken if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken/libshiboken/shiboken-python{py_version}{dbgPostfix}.pdb", "{dist_dir}/Shiboken/shiboken-python{py_version}{dbgPostfix}.pdb", vars=vars)
#export textual format print('exporting') exportfile = os.path.join(trydir, 'kmm_merged.text') exportModel(mergedmodel, exportfile) #prune merged model print('pruning') prunedmodel = os.path.join(trydir, 'pruned.db') if args.fast: shmmodel = os.path.join(config.getInMemoryFileSystem(), 'pruned.db') if os.access(shmmodel, os.F_OK): os.unlink(shmmodel) #copy to memory utils.copyfile(mergedmodel, shmmodel) pruneModel(shmmodel, args.k, args.CDF) #copy to filesystem utils.copyfile(shmmodel, prunedmodel) else: #backup merged model utils.copyfile(mergedmodel, prunedmodel) pruneModel(prunedmodel, args.k, args.CDF) #validate pruned model print('validating') validateModel(prunedmodel) #export textual format print('exporting') exportfile = os.path.join(trydir, 'kmm_pruned.text')
def main(): circuitpython_drive = find_circuitpython_drive() resource_manager = visa.ResourceManager("@ni") meter = Meter(resource_manager) sol = Sol() copy_calibration_script(circuitpython_drive) time.sleep(3) # Wait a few second for circuitpython to maybe reload. sol.reset() cpu_id = sol.get_cpu_id() print(f"Sol CPU ID: {cpu_id}") channel_calibrations = {} channel_voltages = {} try: for channel in ("a", "b", "c", "d"): print(f"========= Channel {channel} =========") input(f"Connect to channel {channel}, press enter when ready.") calibration_values = {} channel_voltages[channel] = {} for step in range(16): dac_code = int((2**16 - 1) * step / 15) sol.set_dac(channel, dac_code) voltage = meter.read_voltage() calibration_values[voltage] = dac_code print(f"DAC code: {dac_code}, Voltage: {voltage}") sol.set_calibration(channel, calibration_values) channel_calibrations[channel] = calibration_values for desired_voltage in range(-5, 9): sol.set_voltage(channel, desired_voltage) measured_voltage = meter.read_voltage() channel_voltages[channel][desired_voltage] = measured_voltage print(f"Desired voltage: {desired_voltage}, Measured voltage: {measured_voltage}") calibration_file_contents = generate_calibration_file(channel_calibrations) sol.write_calibration_to_nvm(calibration_file_contents) finally: meter.close() print("========= Stats =========") for channel, voltages in channel_voltages.items(): if not voltages: continue print(f"Channel {channel}:") differences = [abs(desired - measured) for desired, measured in voltages.items()] avg = statistics.mean(differences) * 1000 dev = statistics.stdev(differences) * 1000 worst = max(differences) * 1000 best = min(differences) * 1000 print(f"Average: {avg:.3f} mV ({avg / MILIVOLTS_PER_CODE:.0f} lsb)") print(f"Std. dev: {dev:.3f} mV ({dev / MILIVOLTS_PER_CODE:.0f} lsb)") print(f"Worst: {worst:.3f} mV ({worst / MILIVOLTS_PER_CODE:.0f} lsb)") print(f"Best: {best:.3f} mV ({best / MILIVOLTS_PER_CODE:.0f} lsb)") print(f"Saving calibration to calibrations/{cpu_id} and {circuitpython_drive}") calibration_file_path = os.path.join(os.path.dirname(__file__), 'calibrations', f'{cpu_id}.py') with open(calibration_file_path, "w") as fh: fh.write("# This is generated by the factory when assembling your\n") fh.write("# device. Do not remove or change this.\n\n") fh.write(calibration_file_contents) fh.flush() utils.copyfile(calibration_file_path, os.path.join(circuitpython_drive, "calibration.py")) restore_code_py(circuitpython_drive) print("Done.")
cwdstatuspath = os.path.join(trydir, config.getFinalStatusFileName()) cwdstatus = utils.load_status(cwdstatuspath) if not utils.check_epoch(cwdstatus, 'Prune'): raise utils.EpochError('Please tryprune first.') if utils.check_epoch(cwdstatus, 'Evaluate'): sys.exit('already evaluated.') print('checking') checkData() modelfile = os.path.join(trydir, config.getFinalModelFileName()) destfile = os.path.join(libpinyin_dir, 'data', \ config.getFinalModelFileName()) utils.copyfile(modelfile, destfile) print('cleaning') cleanUpData() print('building') buildData() print('estimating') reportfile = os.path.join(trydir, 'estimate' + config.getReportPostfix()) avg_lambda = estimateModel(reportfile) print('average lambda:', avg_lambda) cwdstatus['EvaluateAverageLambda'] = avg_lambda utils.store_status(cwdstatuspath, cwdstatus)
def prepare_packages_win32(self, vars): pdbs = ['*.pdb'] if self.debug or self.build_type == 'RelWithDebInfo' else [] # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir( "{install_dir}/lib/site-packages/PySide", "{dist_dir}/PySide", logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <build>/pyside/PySide/*.pdb -> <setup>/PySide copydir( "{build_dir}/pyside/PySide", "{dist_dir}/PySide", filter=pdbs, recursive=False, logger=log, vars=vars) # <build>/shiboken/doc/html/* -> <setup>/PySide/docs/shiboken copydir( "{build_dir}/shiboken/doc/html", "{dist_dir}/PySide/docs/shiboken", force=False, logger=log, vars=vars) # <install>/lib/site-packages/shiboken.pyd -> <setup>/PySide/shiboken.pyd copyfile( "{install_dir}/lib/site-packages/shiboken{dbgPostfix}.pyd", "{dist_dir}/PySide/shiboken{dbgPostfix}.pyd", logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken/shibokenmodule/shiboken{dbgPostfix}.pdb", "{dist_dir}/PySide/shiboken{dbgPostfix}.pdb", logger=log, vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir( "{install_dir}/lib/site-packages/pysideuic", "{dist_dir}/pysideuic", force=False, logger=log, vars=vars) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile( "{dist_dir}/PySide/scripts/__init__.py", logger=log, vars=vars) copyfile( "{install_dir}/bin/pyside-uic", "{dist_dir}/PySide/scripts/uic.py", force=False, logger=log, vars=vars) # <install>/bin/*.exe,*.dll,*.pdb -> PySide/ copydir( "{install_dir}/bin/", "{dist_dir}/PySide", filter=["*.exe", "*.dll"] + pdbs, recursive=False, logger=log, vars=vars) # <install>/lib/*.lib -> PySide/ copydir( "{install_dir}/lib/", "{dist_dir}/PySide", filter=["*.lib"], recursive=False, logger=log, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir( "{install_dir}/share/PySide/typesystems", "{dist_dir}/PySide/typesystems", logger=log, vars=vars) # <install>/include/* -> <setup>/PySide/include copydir( "{install_dir}/include", "{dist_dir}/PySide/include", logger=log, vars=vars) # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir( "{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, logger=log, vars=vars) # <ssl_libs>/* -> <setup>/PySide/ copydir("{ssl_libs_dir}", "{dist_dir}/PySide", filter=[ "libeay32.dll", "ssleay32.dll"], force=False, logger=log, vars=vars) # <qt>/bin/*.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=[ "*.dll", "designer.exe", "linguist.exe", "lrelease.exe", "lupdate.exe", "lconvert.exe"], ignore=["*d4.dll"], recursive=False, logger=log, vars=vars) if self.debug: # <qt>/bin/*d4.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=["*d4.dll"] + pdbs, recursive=False, logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*.pdb -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*.pdb"], recursive=False, logger=log, vars=vars) # I think these are the qt-mobility DLLs, at least some are, # so let's copy them too # <qt>/lib/*.dll -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*.dll"], ignore=["*d?.dll"], recursive=False, logger=log, vars=vars) if self.debug: # <qt>/lib/*d4.dll -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*d?.dll"], recursive=False, logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*pdb -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=pdbs, recursive=False, logger=log, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide/plugins", filter=["*.dll"] + pdbs, logger=log, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports copydir("{qt_imports_dir}", "{dist_dir}/PySide/imports", filter=["qmldir", "*.dll"] + pdbs, logger=log, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide/translations", filter=["*.qm"], logger=log, vars=vars)
def restore_code_py(circuitpython_drive): utils.copyfile( os.path.join(circuitpython_drive, "code-bak.py"), os.path.join(circuitpython_drive, "code.py")) os.unlink(os.path.join(circuitpython_drive, "code-bak.py"))
def prepare_packages_posix(self, vars): executables = [] if sys.platform.startswith('linux'): so_ext = '.so' so_star = so_ext + '.*' elif sys.platform == 'darwin': so_ext = '.dylib' so_star = so_ext # <build>/shiboken2/doc/html/* -> <setup>/PySide2/docs/shiboken2 copydir( "{build_dir}/shiboken2/doc/html", "{dist_dir}/PySide2/docs/shiboken2", force=False, vars=vars) # <install>/lib/site-packages/PySide2/* -> <setup>/PySide2 copydir( "{site_packages_dir}/PySide2", "{dist_dir}/PySide2", vars=vars) # <install>/lib/site-packages/shiboken2.so -> <setup>/PySide2/shiboken2.so copyfile( "{site_packages_dir}/shiboken2.so", "{dist_dir}/PySide2/shiboken2.so", vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir( "{site_packages_dir}/pysideuic", "{dist_dir}/pysideuic", force=False, vars=vars) if sys.version_info[0] > 2: rmtree("{dist_dir}/pysideuic/port_v2".format(**vars)) else: rmtree("{dist_dir}/pysideuic/port_v3".format(**vars)) # <install>/bin/pyside2-uic -> PySide2/scripts/uic.py makefile( "{dist_dir}/PySide2/scripts/__init__.py", vars=vars) copyfile( "{install_dir}/bin/pyside2-uic", "{dist_dir}/PySide2/scripts/uic.py", force=False, vars=vars) # <install>/bin/* -> PySide2/ executables.extend(copydir( "{install_dir}/bin/", "{dist_dir}/PySide2", filter=[ "pyside2-lupdate", "pyside2-rcc", "shiboken2", ], recursive=False, vars=vars)) # <install>/lib/lib* -> PySide2/ copydir( "{install_dir}/lib/", "{dist_dir}/PySide2", filter=[ "libpyside*" + so_star, "libshiboken*" + so_star, ], recursive=False, vars=vars) # <install>/share/PySide2/typesystems/* -> <setup>/PySide2/typesystems copydir( "{install_dir}/share/PySide2/typesystems", "{dist_dir}/PySide2/typesystems", vars=vars) # <install>/include/* -> <setup>/PySide2/include copydir( "{install_dir}/include", "{dist_dir}/PySide2/include", vars=vars) if not OPTION_NOEXAMPLES: # <sources>/pyside2-examples/examples/* -> <setup>/PySide2/examples folder = get_extension_folder('pyside2-examples') copydir( "{sources_dir}/%s/examples" % folder, "{dist_dir}/PySide2/examples", force=False, vars=vars) # Re-generate examples Qt resource files for Python 3 compatibility if sys.version_info[0] == 3: examples_path = "{dist_dir}/PySide2/examples".format(**vars) pyside_rcc_path = "{install_dir}/bin/pyside2-rcc".format(**vars) pyside_rcc_options = '-py3' regenerate_qt_resources(examples_path, pyside_rcc_path, pyside_rcc_options) # Copy Qt libs to package if OPTION_STANDALONE: if sys.platform == 'darwin': raise RuntimeError('--standalone not yet supported for OSX') # <qt>/bin/* -> <setup>/PySide2 executables.extend(copydir("{qt_bin_dir}", "{dist_dir}/PySide2", filter=[ "designer", "linguist", "lrelease", "lupdate", "lconvert", ], recursive=False, vars=vars)) # <qt>/lib/* -> <setup>/PySide2 copydir("{qt_lib_dir}", "{dist_dir}/PySide2", filter=[ "libQt*.so.?", "libphonon.so.?", ], recursive=False, vars=vars) # <qt>/plugins/* -> <setup>/PySide2/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide2/plugins", filter=["*.so"], vars=vars) # <qt>/imports/* -> <setup>/PySide2/imports if float(vars["qt_version"][:3]) > 4.6: copydir("{qt_imports_dir}", "{dist_dir}/PySide2/imports", filter=["qmldir", "*.so"], force=False, vars=vars) # <qt>/translations/* -> <setup>/PySide2/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide2/translations", filter=["*.qm"], vars=vars) # Update rpath to $ORIGIN if sys.platform.startswith('linux') or sys.platform.startswith('darwin'): self.update_rpath("{dist_dir}/PySide2".format(**vars), executables)
def moveFile(i, dataFolder, outputFolder): print('File {} from {}---> {} ({}) '.format(i[0], i[1], i[2], i[3])) f = '{}/{}.jpg'.format(str(bool(i[1])).lower(), i[0]) utils.copyfile(os.path.join(dataFolder, f), os.path.join(outputFolder,f))
def prepare_packages_posix(self, vars): if sys.platform.startswith('linux'): # patchelf -> PySide/patchelf copyfile("{script_dir}/patchelf", "{dist_dir}/PySide/patchelf", logger=log, vars=vars) so_ext = '.so' so_star = so_ext + '.*' elif sys.platform == 'darwin': so_ext = '.dylib' so_star = so_ext # <build>/shiboken/doc/html/* -> <setup>/PySide/docs/shiboken copydir("{build_dir}/shiboken/doc/html", "{dist_dir}/PySide/docs/shiboken", force=False, logger=log, vars=vars) # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir("{site_packages_dir}/PySide", "{dist_dir}/PySide", logger=log, vars=vars) # <install>/lib/site-packages/shiboken.so -> <setup>/PySide/shiboken.so copyfile("{site_packages_dir}/shiboken.so", "{dist_dir}/PySide/shiboken.so", logger=log, vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir("{site_packages_dir}/pysideuic", "{dist_dir}/pysideuic", force=False, logger=log, vars=vars) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile("{dist_dir}/PySide/scripts/__init__.py", logger=log, vars=vars) copyfile("{install_dir}/bin/pyside-uic", "{dist_dir}/PySide/scripts/uic.py", force=False, logger=log, vars=vars) # <install>/bin/* -> PySide/ copydir("{install_dir}/bin/", "{dist_dir}/PySide", filter=[ "pyside-lupdate", "pyside-rcc", "shiboken", ], recursive=False, logger=log, vars=vars) # <install>/lib/lib* -> PySide/ copydir("{install_dir}/lib/", "{dist_dir}/PySide", filter=[ "libpyside*" + so_star, "libshiboken*" + so_star, ], recursive=False, logger=log, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir("{install_dir}/share/PySide/typesystems", "{dist_dir}/PySide/typesystems", logger=log, vars=vars) # <install>/include/* -> <setup>/PySide/include copydir("{install_dir}/include", "{dist_dir}/PySide/include", logger=log, vars=vars) if not OPTION_NOEXAMPLES: # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir("{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, logger=log, vars=vars) # Copy Qt libs to package if OPTION_STANDALONE: if sys.platform == 'darwin': raise RuntimeError('--standalone not yet supported for OSX') # <qt>/bin/* -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=[ "designer", "linguist", "lrelease", "lupdate", "lconvert", ], recursive=False, logger=log, vars=vars) # <qt>/lib/* -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=[ "libQt*.so.?", "libphonon.so.?", ], recursive=False, logger=log, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide/plugins", filter=["*.so"], logger=log, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports if float(vars["qt_version"][:3]) > 4.6: copydir("{qt_imports_dir}", "{dist_dir}/PySide/imports", filter=["qmldir", "*.so"], logger=log, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide/translations", filter=["*.qm"], logger=log, vars=vars)
def run(self,iso=None,tempdir=None,profiles=None,systems=None,distro=None,standalone=None,source=None,exclude_dns=None): # the distro option is for stand-alone builds only if not standalone and distro is not None: raise CX(_("The --distro option should only be used when creating a standalone ISO")) # if building standalone, we only want --distro, # profiles/systems are disallowed if standalone: if profiles is not None or systems is not None: raise CX(_("When building a standalone ISO, use --distro only instead of --profiles/--systems")) elif distro is None: raise CX(_("When building a standalone ISO, you must specify a --distro")) if source != None and not os.path.exists(source): raise CX(_("The source specified (%s) does not exist" % source)) # if iso is none, create it in . as "kickstart.iso" if iso is None: iso = "kickstart.iso" if tempdir is None: tempdir = os.path.join(os.getcwd(), "buildiso") else: if not os.path.isdir(tempdir): raise CX(_("The --tempdir specified is not a directory")) (tempdir_head,tempdir_tail) = os.path.split(os.path.normpath(tempdir)) if tempdir_tail != "buildiso": tempdir = os.path.join(tempdir, "buildiso") print _("- using/creating tempdir: %s") % tempdir if not os.path.exists(tempdir): os.makedirs(tempdir) else: shutil.rmtree(tempdir) os.makedirs(tempdir) # if base of tempdir does not exist, fail # create all profiles unless filtered by "profiles" imagesdir = os.path.join(tempdir, "images") isolinuxdir = os.path.join(tempdir, "isolinux") print _("- building tree for isolinux") if not os.path.exists(imagesdir): os.makedirs(imagesdir) if not os.path.exists(isolinuxdir): os.makedirs(isolinuxdir) print _("- copying miscellaneous files") isolinuxbin = "/usr/lib/syslinux/isolinux.bin" menu = "/var/lib/cobbler/menu.c32" chain = "/usr/lib/syslinux/chain.c32" files = [ isolinuxbin, menu, chain ] for f in files: if not os.path.exists(f): raise CX(_("Required file not found: %s") % f) else: utils.copyfile(f, os.path.join(isolinuxdir, os.path.basename(f)), self.api) if standalone: self.generate_standalone_iso(imagesdir,isolinuxdir,distro,source) else: self.generate_netboot_iso(imagesdir,isolinuxdir,profiles,systems,exclude_dns) cmd = "mkisofs -quiet -o %s -r -b isolinux/isolinux.bin -c isolinux/boot.cat" % iso cmd = cmd + " -no-emul-boot -boot-load-size 4" cmd = cmd + " -boot-info-table -V Cobbler\ Install -R -J -T %s" % tempdir print _("- running: %s") % cmd rc = sub_process.call(cmd, shell=True, close_fds=True) if rc: raise CX(_("mkisofs failed")) print _("ISO build complete") print _("You may wish to delete: %s") % tempdir print _("The output file is: %s") % iso
def program_circuitpython(): print("========== PROGRAMMING CIRCUITPYTHON ==========") input("Connect usb cable, press enter.") bootloader_drive = utils.find_drive_by_name("SOLBOOT") utils.copyfile("firmware.uf2", os.path.join(bootloader_drive, "NEW.uf2"))
def copy_cmtfile(cmtfile, targetdir): destfile = os.path.join(targetdir, "DATA/CMTSOLUTION") copyfile(cmtfile, destfile)
def prepare_packages_posix(self, vars): executables = [] if sys.platform.startswith('linux'): so_ext = '.so' so_star = so_ext + '.*' elif sys.platform == 'darwin': so_ext = '.dylib' so_star = so_ext # <build>/shiboken/doc/html/* -> <setup>/PySide/docs/shiboken copydir("{build_dir}/shiboken/doc/html", "{dist_dir}/PySide/docs/shiboken", force=False, vars=vars) # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir("{site_packages_dir}/PySide", "{dist_dir}/PySide", vars=vars) # <install>/lib/site-packages/shiboken.so -> <setup>/PySide/shiboken.so copyfile("{site_packages_dir}/shiboken.so", "{dist_dir}/PySide/shiboken.so", vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir("{site_packages_dir}/pysideuic", "{dist_dir}/pysideuic", force=False, vars=vars) if sys.version_info[0] > 2: rmtree("{dist_dir}/pysideuic/port_v2".format(**vars)) else: rmtree("{dist_dir}/pysideuic/port_v3".format(**vars)) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile("{dist_dir}/PySide/scripts/__init__.py", vars=vars) copyfile("{install_dir}/bin/pyside-uic", "{dist_dir}/PySide/scripts/uic.py", force=False, vars=vars) # <install>/bin/* -> PySide/ executables.extend( copydir("{install_dir}/bin/", "{dist_dir}/PySide", filter=[ "pyside-lupdate", "pyside-rcc", "shiboken", ], recursive=False, vars=vars)) # <install>/lib/lib* -> PySide/ copydir("{install_dir}/lib/", "{dist_dir}/PySide", filter=[ "libpyside*" + so_star, "libshiboken*" + so_star, ], recursive=False, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir("{install_dir}/share/PySide/typesystems", "{dist_dir}/PySide/typesystems", vars=vars) # <install>/include/* -> <setup>/PySide/include copydir("{install_dir}/include", "{dist_dir}/PySide/include", vars=vars) if not OPTION_NOEXAMPLES: # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir("{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, vars=vars) # Re-generate examples Qt resource files for Python 3 compatibility if sys.version_info[0] == 3: examples_path = "{dist_dir}/PySide/examples".format(**vars) pyside_rcc_path = "{install_dir}/bin/pyside-rcc".format(**vars) pyside_rcc_options = '-py3' regenerate_qt_resources(examples_path, pyside_rcc_path, pyside_rcc_options) # Copy Qt libs to package if OPTION_STANDALONE: if sys.platform == 'darwin': raise RuntimeError('--standalone not yet supported for OSX') # <qt>/bin/* -> <setup>/PySide executables.extend( copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=[ "designer", "linguist", "lrelease", "lupdate", "lconvert", ], recursive=False, vars=vars)) # <qt>/lib/* -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=[ "libQt*.so.?", "libphonon.so.?", ], recursive=False, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide/plugins", filter=["*.so"], vars=vars) # <qt>/imports/* -> <setup>/PySide/imports if float(vars["qt_version"][:3]) > 4.6: copydir("{qt_imports_dir}", "{dist_dir}/PySide/imports", filter=["qmldir", "*.so"], force=False, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide/translations", filter=["*.qm"], vars=vars) # Update rpath to $ORIGIN if sys.platform.startswith('linux') or sys.platform.startswith( 'darwin'): self.update_rpath("{dist_dir}/PySide".format(**vars), executables)
def prepare_packages_win32(self, vars): pdbs = ['*.pdb' ] if self.debug or self.build_type == 'RelWithDebInfo' else [] # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir("{site_packages_dir}/PySide", "{dist_dir}/PySide", logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <build>/pyside/PySide/*.pdb -> <setup>/PySide copydir("{build_dir}/pyside/PySide", "{dist_dir}/PySide", filter=pdbs, recursive=False, logger=log, vars=vars) # <build>/shiboken/doc/html/* -> <setup>/PySide/docs/shiboken copydir("{build_dir}/shiboken/doc/html", "{dist_dir}/PySide/docs/shiboken", force=False, logger=log, vars=vars) # <install>/lib/site-packages/shiboken.pyd -> <setup>/PySide/shiboken.pyd copyfile("{site_packages_dir}/shiboken{dbgPostfix}.pyd", "{dist_dir}/PySide/shiboken{dbgPostfix}.pyd", logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken/shibokenmodule/shiboken{dbgPostfix}.pdb", "{dist_dir}/PySide/shiboken{dbgPostfix}.pdb", logger=log, vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir("{site_packages_dir}/pysideuic", "{dist_dir}/pysideuic", force=False, logger=log, vars=vars) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile("{dist_dir}/PySide/scripts/__init__.py", logger=log, vars=vars) copyfile("{install_dir}/bin/pyside-uic", "{dist_dir}/PySide/scripts/uic.py", force=False, logger=log, vars=vars) # <install>/bin/*.exe,*.dll,*.pdb -> PySide/ copydir("{install_dir}/bin/", "{dist_dir}/PySide", filter=["*.exe", "*.dll"] + pdbs, recursive=False, logger=log, vars=vars) # <install>/lib/*.lib -> PySide/ copydir("{install_dir}/lib/", "{dist_dir}/PySide", filter=["*.lib"], recursive=False, logger=log, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir("{install_dir}/share/PySide/typesystems", "{dist_dir}/PySide/typesystems", logger=log, vars=vars) # <install>/include/* -> <setup>/PySide/include copydir("{install_dir}/include", "{dist_dir}/PySide/include", logger=log, vars=vars) if not OPTION_NOEXAMPLES: # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir("{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, logger=log, vars=vars) # <ssl_libs>/* -> <setup>/PySide/openssl copydir("{ssl_libs_dir}", "{dist_dir}/PySide/openssl", filter=["libeay32.dll", "ssleay32.dll"], force=False, logger=log, vars=vars) # <qt>/bin/*.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=[ "*.dll", "designer.exe", "linguist.exe", "lrelease.exe", "lupdate.exe", "lconvert.exe" ], ignore=["*d4.dll"], recursive=False, logger=log, vars=vars) if self.debug: # <qt>/bin/*d4.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=["*d4.dll"] + pdbs, recursive=False, logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*.pdb -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*.pdb"], recursive=False, logger=log, vars=vars) # I think these are the qt-mobility DLLs, at least some are, # so let's copy them too # <qt>/lib/*.dll -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*.dll"], ignore=["*d?.dll"], recursive=False, logger=log, vars=vars) if self.debug: # <qt>/lib/*d4.dll -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*d?.dll"], recursive=False, logger=log, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*pdb -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=pdbs, recursive=False, logger=log, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide/plugins", filter=["*.dll"] + pdbs, logger=log, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports copydir("{qt_imports_dir}", "{dist_dir}/PySide/imports", filter=["qmldir", "*.dll"] + pdbs, logger=log, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide/translations", filter=["*.qm"], logger=log, vars=vars)
def prepare_packages_win32(self, vars): pdbs = ['*.pdb' ] if self.debug or self.build_type == 'RelWithDebInfo' else [] # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir("{site_packages_dir}/PySide", "{dist_dir}/PySide", vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <build>/pyside/PySide/*.pdb -> <setup>/PySide copydir("{build_dir}/pyside/PySide", "{dist_dir}/PySide", filter=pdbs, recursive=False, vars=vars) # <build>/shiboken/doc/html/* -> <setup>/PySide/docs/shiboken copydir("{build_dir}/shiboken/doc/html", "{dist_dir}/PySide/docs/shiboken", force=False, vars=vars) # <install>/lib/site-packages/shiboken.pyd -> <setup>/PySide/shiboken.pyd copyfile("{site_packages_dir}/shiboken{dbgPostfix}.pyd", "{dist_dir}/PySide/shiboken{dbgPostfix}.pyd", vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken/shibokenmodule/shiboken{dbgPostfix}.pdb", "{dist_dir}/PySide/shiboken{dbgPostfix}.pdb", vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir("{site_packages_dir}/pysideuic", "{dist_dir}/pysideuic", force=False, vars=vars) if sys.version_info[0] > 2: rmtree("{dist_dir}/pysideuic/port_v2".format(**vars)) else: rmtree("{dist_dir}/pysideuic/port_v3".format(**vars)) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile("{dist_dir}/PySide/scripts/__init__.py", vars=vars) copyfile("{install_dir}/bin/pyside-uic", "{dist_dir}/PySide/scripts/uic.py", force=False, vars=vars) # <install>/bin/*.exe,*.dll,*.pdb -> PySide/ copydir("{install_dir}/bin/", "{dist_dir}/PySide", filter=["*.exe", "*.dll"] + pdbs, recursive=False, vars=vars) # <install>/lib/*.lib -> PySide/ copydir("{install_dir}/lib/", "{dist_dir}/PySide", filter=["*.lib"], recursive=False, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir("{install_dir}/share/PySide/typesystems", "{dist_dir}/PySide/typesystems", vars=vars) # <install>/include/* -> <setup>/PySide/include copydir("{install_dir}/include", "{dist_dir}/PySide/include", vars=vars) if not OPTION_NOEXAMPLES: # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir("{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, vars=vars) # Re-generate examples Qt resource files for Python 3 compatibility if sys.version_info[0] == 3: examples_path = "{dist_dir}/PySide/examples".format(**vars) pyside_rcc_path = "{install_dir}/bin/pyside-rcc".format(**vars) pyside_rcc_options = '-py3' regenerate_qt_resources(examples_path, pyside_rcc_path, pyside_rcc_options) # <ssl_libs>/* -> <setup>/PySide/openssl copydir("{ssl_libs_dir}", "{dist_dir}/PySide/openssl", filter=["libeay32.dll", "ssleay32.dll"], force=False, vars=vars) # <qt>/bin/*.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=[ "*.dll", "designer.exe", "linguist.exe", "lrelease.exe", "lupdate.exe", "lconvert.exe" ], ignore=["*d4.dll"], recursive=False, vars=vars) if self.debug: # <qt>/bin/*d4.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=["*d4.dll"] + pdbs, recursive=False, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*.pdb -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*.pdb"], recursive=False, vars=vars) # I think these are the qt-mobility DLLs, at least some are, # so let's copy them too # <qt>/lib/*.dll -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*.dll"], ignore=["*d?.dll"], recursive=False, vars=vars) if self.debug: # <qt>/lib/*d4.dll -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=["*d?.dll"], recursive=False, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*pdb -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=pdbs, recursive=False, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide/plugins", filter=["*.dll"] + pdbs, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports copydir("{qt_imports_dir}", "{dist_dir}/PySide/imports", filter=["qmldir", "*.dll"] + pdbs, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide/translations", filter=["*.qm"], vars=vars) # pdb files for libshiboken and libpyside if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken/libshiboken/shiboken-python{py_version}{dbgPostfix}.pdb", "{dist_dir}/PySide/shiboken-python{py_version}{dbgPostfix}.pdb", vars=vars) copyfile( "{build_dir}/pyside/libpyside/pyside-python{py_version}{dbgPostfix}.pdb", "{dist_dir}/PySide/pyside-python{py_version}{dbgPostfix}.pdb", vars=vars)
def run(self, iso=None, buildisodir=None, profiles=None, systems=None, distro=None, standalone=None, airgapped=None, source=None, exclude_dns=None, mkisofs_opts=None): # the airgapped option implies standalone if airgapped is True: standalone = True # the distro option is for stand-alone builds only if not standalone and distro is not None: utils.die( self.logger, "The --distro option should only be used when creating a standalone or airgapped ISO" ) # if building standalone, we only want --distro and --profiles (optional), # systems are disallowed if standalone: if systems is not None: utils.die( self.logger, "When building a standalone ISO, use --distro and --profiles only, not --systems" ) elif distro is None: utils.die( self.logger, "When building a standalone ISO, you must specify a --distro" ) if source is not None and not os.path.exists(source): utils.die(self.logger, "The source specified (%s) does not exist" % source) # insure all profiles specified are children of the distro if profiles: which_profiles = self.filter_systems_or_profiles( profiles, 'profile') for profile in which_profiles: if profile.distro != distro: utils.die( self.logger, "When building a standalone ISO, all --profiles must be under --distro" ) # if iso is none, create it in . as "autoinst.iso" if iso is None: iso = "autoinst.iso" if buildisodir is None: buildisodir = self.settings.buildisodir else: if not os.path.isdir(buildisodir): utils.die(self.logger, "The --tempdir specified is not a directory") (buildisodir_head, buildisodir_tail) = os.path.split(os.path.normpath(buildisodir)) if buildisodir_tail != "buildiso": buildisodir = os.path.join(buildisodir, "buildiso") self.logger.info("using/creating buildisodir: %s" % buildisodir) if not os.path.exists(buildisodir): os.makedirs(buildisodir) else: shutil.rmtree(buildisodir) os.makedirs(buildisodir) # if base of buildisodir does not exist, fail # create all profiles unless filtered by "profiles" imagesdir = os.path.join(buildisodir, "images") isolinuxdir = os.path.join(buildisodir, "isolinux") self.logger.info("building tree for isolinux") if not os.path.exists(imagesdir): os.makedirs(imagesdir) if not os.path.exists(isolinuxdir): os.makedirs(isolinuxdir) self.logger.info("copying miscellaneous files") isolinuxbin = "/usr/share/syslinux/isolinux.bin" if not os.path.exists(isolinuxbin): isolinuxbin = "/usr/lib/syslinux/isolinux.bin" menu = "/usr/share/syslinux/menu.c32" if not os.path.exists(menu): menu = "/var/lib/cobbler/loaders/menu.c32" chain = "/usr/share/syslinux/chain.c32" if not os.path.exists(chain): chain = "/usr/lib/syslinux/chain.c32" ldlinux = "/usr/share/syslinux/ldlinux.c32" if not os.path.exists(ldlinux): ldlinux = "/usr/lib/syslinux/ldlinux.c32" libcom32 = "/usr/share/syslinux/libcom32.c32" if not os.path.exists(libcom32): ldlinux = "/usr/lib/syslinux/libcom32.c32" libutil = "/usr/share/syslinux/libutil.c32" if not os.path.exists(libutil): ldlinux = "/usr/lib/syslinux/libutil.c32" files = [isolinuxbin, menu, chain, ldlinux, libcom32, libutil] for f in files: if not os.path.exists(f): utils.die(self.logger, "Required file not found: %s" % f) else: utils.copyfile(f, os.path.join(isolinuxdir, os.path.basename(f)), self.api) if standalone or airgapped: self.generate_standalone_iso(imagesdir, isolinuxdir, distro, source, airgapped, profiles) else: self.generate_netboot_iso(imagesdir, isolinuxdir, profiles, systems, exclude_dns) if mkisofs_opts is None: mkisofs_opts = "" else: mkisofs_opts = mkisofs_opts.strip() # removed --quiet cmd = "mkisofs -o %s %s -r -b isolinux/isolinux.bin -c isolinux/boot.cat" % ( iso, mkisofs_opts) cmd = cmd + " -no-emul-boot -boot-load-size 4" cmd = cmd + " -boot-info-table -V Cobbler\ Install -R -J -T %s" % buildisodir rc = utils.subprocess_call(self.logger, cmd, shell=True) if rc != 0: utils.die(self.logger, "mkisofs failed") self.logger.info("ISO build complete") self.logger.info("You may wish to delete: %s" % buildisodir) self.logger.info("The output file is: %s" % iso)
def test_rustfmt_handler(self): fixture = os.path.join('fixtures', 'main.rs') data = {'filename': copyfile(fixture), 'settings': self.settings} handler = RustFMTHandler("format", data, 0, 0, self._check_rustfmt) handler.run()
def prepare_packages_win32(self, vars): pdbs = ['*.pdb'] if self.debug or self.build_type == 'RelWithDebInfo' else [] # <install>/lib/site-packages/PySide2/* -> <setup>/PySide2 copydir( "{site_packages_dir}/PySide2", "{dist_dir}/PySide2", vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <build>/pyside2/PySide2/*.pdb -> <setup>/PySide2 copydir( "{build_dir}/pyside2/PySide2", "{dist_dir}/PySide2", filter=pdbs, recursive=False, vars=vars) # <build>/shiboken2/doc/html/* -> <setup>/PySide2/docs/shiboken2 copydir( "{build_dir}/shiboken2/doc/html", "{dist_dir}/PySide2/docs/shiboken2", force=False, vars=vars) # <install>/lib/site-packages/shiboken2.pyd -> <setup>/PySide2/shiboken2.pyd copyfile( "{site_packages_dir}/shiboken2{dbgPostfix}.pyd", "{dist_dir}/PySide2/shiboken2{dbgPostfix}.pyd", vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': copyfile( "{build_dir}/shiboken2/shibokenmodule/shiboken2{dbgPostfix}.pdb", "{dist_dir}/PySide2/shiboken2{dbgPostfix}.pdb", vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir( "{site_packages_dir}/pysideuic", "{dist_dir}/pysideuic", force=False, vars=vars) if sys.version_info[0] > 2: rmtree("{dist_dir}/pysideuic/port_v2".format(**vars)) else: rmtree("{dist_dir}/pysideuic/port_v3".format(**vars)) # <install>/bin/pyside2-uic -> PySide2/scripts/uic.py makefile( "{dist_dir}/PySide2/scripts/__init__.py", vars=vars) copyfile( "{install_dir}/bin/pyside2-uic", "{dist_dir}/PySide2/scripts/uic.py", force=False, vars=vars) # <install>/bin/*.exe,*.dll,*.pdb -> PySide2/ copydir( "{install_dir}/bin/", "{dist_dir}/PySide2", filter=["*.exe", "*.dll"] + pdbs, recursive=False, vars=vars) # <install>/lib/*.lib -> PySide2/ copydir( "{install_dir}/lib/", "{dist_dir}/PySide2", filter=["*.lib"], recursive=False, vars=vars) # <install>/share/PySide2/typesystems/* -> <setup>/PySide2/typesystems copydir( "{install_dir}/share/PySide2/typesystems", "{dist_dir}/PySide2/typesystems", vars=vars) # <install>/include/* -> <setup>/PySide2/include copydir( "{install_dir}/include", "{dist_dir}/PySide2/include", vars=vars) if not OPTION_NOEXAMPLES: # <sources>/pyside2-examples/examples/* -> <setup>/PySide2/examples folder = get_extension_folder('pyside2-examples') copydir( "{sources_dir}/%s/examples" % folder, "{dist_dir}/PySide2/examples", force=False, vars=vars) # Re-generate examples Qt resource files for Python 3 compatibility if sys.version_info[0] == 3: examples_path = "{dist_dir}/PySide2/examples".format(**vars) pyside_rcc_path = "{install_dir}/bin/pyside2-rcc".format(**vars) pyside_rcc_options = '-py3' regenerate_qt_resources(examples_path, pyside_rcc_path, pyside_rcc_options) # <ssl_libs>/* -> <setup>/PySide2/openssl copydir("{ssl_libs_dir}", "{dist_dir}/PySide2/openssl", filter=[ "libeay32.dll", "ssleay32.dll"], force=False, vars=vars) # <qt>/bin/*.dll -> <setup>/PySide2 copydir("{qt_bin_dir}", "{dist_dir}/PySide2", filter=[ "*.dll", "designer.exe", "linguist.exe", "lrelease.exe", "lupdate.exe", "lconvert.exe"], ignore=["*d4.dll"], recursive=False, vars=vars) if self.debug: # <qt>/bin/*d4.dll -> <setup>/PySide2 copydir("{qt_bin_dir}", "{dist_dir}/PySide2", filter=["*d4.dll"] + pdbs, recursive=False, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*.pdb -> <setup>/PySide2 copydir("{qt_lib_dir}", "{dist_dir}/PySide2", filter=["*.pdb"], recursive=False, vars=vars) # I think these are the qt-mobility DLLs, at least some are, # so let's copy them too # <qt>/lib/*.dll -> <setup>/PySide2 copydir("{qt_lib_dir}", "{dist_dir}/PySide2", filter=["*.dll"], ignore=["*d?.dll"], recursive=False, vars=vars) if self.debug: # <qt>/lib/*d4.dll -> <setup>/PySide2 copydir("{qt_lib_dir}", "{dist_dir}/PySide2", filter=["*d?.dll"], recursive=False, vars=vars) if self.debug or self.build_type == 'RelWithDebInfo': # <qt>/lib/*pdb -> <setup>/PySide2 copydir("{qt_lib_dir}", "{dist_dir}/PySide2", filter=pdbs, recursive=False, vars=vars) # <qt>/plugins/* -> <setup>/PySide2/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide2/plugins", filter=["*.dll"] + pdbs, vars=vars) # <qt>/imports/* -> <setup>/PySide2/imports copydir("{qt_imports_dir}", "{dist_dir}/PySide2/imports", filter=["qmldir", "*.dll"] + pdbs, vars=vars) # <qt>/translations/* -> <setup>/PySide2/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide2/translations", filter=["*.qm"], vars=vars) # pdb files for libshiboken and libpyside if self.debug or self.build_type == 'RelWithDebInfo': # XXX dbgPostfix gives problems - the structure in shiboken2/data should be re-written! copyfile( "{build_dir}/shiboken2/libshiboken/shiboken2-python{py_version}.pdb", "{dist_dir}/PySide2/shiboken2-python{py_version}.pdb", # omitted dbgPostfix vars=vars) copyfile( "{build_dir}/pyside2/libpyside/pyside2-python{py_version}.pdb", "{dist_dir}/PySide2/pyside2-python{py_version}.pdb", # omitted dbgPostfix vars=vars)
def prepare_packages_linux(self, vars): # patchelf -> PySide/patchelf copyfile( "{setup_dir}/patchelf", "{setup_dir}/PySide/patchelf", logger=log, vars=vars) # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir( "{install_dir}/lib/python{py_version}/site-packages/PySide", "{setup_dir}/PySide", logger=log, vars=vars) # <install>/lib/site-packages/shiboken.so -> <setup>/PySide/shiboken.so copyfile( "{install_dir}/lib/python{py_version}/site-packages/shiboken.so", "{setup_dir}/PySide/shiboken.so", logger=log, vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir( "{install_dir}/lib/python{py_version}/site-packages/pysideuic", "{setup_dir}/pysideuic", force=False, logger=log, vars=vars) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile( "{setup_dir}/PySide/scripts/__init__.py", logger=log, vars=vars) copyfile( "{install_dir}/bin/pyside-uic", "{setup_dir}/PySide/scripts/uic.py", force=False, logger=log, vars=vars) # <install>/bin/* -> PySide/ copydir( "{install_dir}/bin/", "{setup_dir}/PySide", filter=[ "pyside-lupdate", "pyside-rcc", "shiboken", ], recursive=False, logger=log, vars=vars) # <install>/lib/lib* -> PySide/ copydir( "{install_dir}/lib/", "{setup_dir}/PySide", filter=[ "libpyside*.so.*", "libshiboken*.so.*", ], recursive=False, logger=log, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir( "{install_dir}/share/PySide/typesystems", "{setup_dir}/PySide/typesystems", logger=log, vars=vars) # <install>/include/* -> <setup>/PySide/include copydir( "{install_dir}/include", "{setup_dir}/PySide/include", logger=log, vars=vars) # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir( "{sources_dir}/pyside-examples/examples", "{setup_dir}/PySide/examples", force=False, logger=log, vars=vars) # Copy Qt libs to package if OPTION_STANDALONE: # <qt>/bin/* -> <setup>/PySide copydir("{qt_bin_dir}", "{setup_dir}/PySide", filter=[ "designer", "linguist", "lrelease", "lupdate", "lconvert", ], recursive=False, logger=log, vars=vars) # <qt>/lib/* -> <setup>/PySide copydir("{qt_lib_dir}", "{setup_dir}/PySide", filter=[ "libQt*.so.?", "libphonon.so.?", ], recursive=False, logger=log, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{setup_dir}/PySide/plugins", filter=["*.so"], logger=log, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports if float(vars["qt_version"][:3]) > 4.6: copydir("{qt_imports_dir}", "{setup_dir}/PySide/imports", filter=["qmldir", "*.so"], logger=log, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{setup_dir}/PySide/translations", filter=["*.qm"], logger=log, vars=vars)
def prepare_packages_posix(self, vars): if sys.platform == 'linux2': # patchelf -> PySide/patchelf copyfile( "{script_dir}/patchelf", "{dist_dir}/PySide/patchelf", logger=log, vars=vars) so_ext = '.so' so_star = so_ext + '.*' elif sys.platform == 'darwin': so_ext = '.dylib' so_star = so_ext # <build>/shiboken/doc/html/* -> <setup>/PySide/docs/shiboken copydir( "{build_dir}/shiboken/doc/html", "{dist_dir}/PySide/docs/shiboken", force=False, logger=log, vars=vars) # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir( "{install_dir}/lib/python{py_version}/site-packages/PySide", "{dist_dir}/PySide", logger=log, vars=vars) # <install>/lib/site-packages/shiboken.so -> <setup>/PySide/shiboken.so copyfile( "{install_dir}/lib/python{py_version}/site-packages/shiboken.so", "{dist_dir}/PySide/shiboken.so", logger=log, vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir( "{install_dir}/lib/python{py_version}/site-packages/pysideuic", "{dist_dir}/pysideuic", force=False, logger=log, vars=vars) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile( "{dist_dir}/PySide/scripts/__init__.py", logger=log, vars=vars) copyfile( "{install_dir}/bin/pyside-uic", "{dist_dir}/PySide/scripts/uic.py", force=False, logger=log, vars=vars) # <install>/bin/* -> PySide/ copydir( "{install_dir}/bin/", "{dist_dir}/PySide", filter=[ "pyside-lupdate", "pyside-rcc", "shiboken", ], recursive=False, logger=log, vars=vars) # <install>/lib/lib* -> PySide/ copydir( "{install_dir}/lib/", "{dist_dir}/PySide", filter=[ "libpyside*" + so_star, "libshiboken*" + so_star, ], recursive=False, logger=log, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir( "{install_dir}/share/PySide/typesystems", "{dist_dir}/PySide/typesystems", logger=log, vars=vars) # <install>/include/* -> <setup>/PySide/include copydir( "{install_dir}/include", "{dist_dir}/PySide/include", logger=log, vars=vars) # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir( "{sources_dir}/pyside-examples/examples", "{dist_dir}/PySide/examples", force=False, logger=log, vars=vars) # Copy Qt libs to package if OPTION_STANDALONE: if sys.platform == 'darwin': raise RuntimeError('--standalone not yet supported for OSX') # <qt>/bin/* -> <setup>/PySide copydir("{qt_bin_dir}", "{dist_dir}/PySide", filter=[ "designer", "linguist", "lrelease", "lupdate", "lconvert", ], recursive=False, logger=log, vars=vars) # <qt>/lib/* -> <setup>/PySide copydir("{qt_lib_dir}", "{dist_dir}/PySide", filter=[ "libQt*.so.?", "libphonon.so.?", ], recursive=False, logger=log, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{dist_dir}/PySide/plugins", filter=["*.so"], logger=log, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports if float(vars["qt_version"][:3]) > 4.6: copydir("{qt_imports_dir}", "{dist_dir}/PySide/imports", filter=["qmldir", "*.so"], logger=log, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{dist_dir}/PySide/translations", filter=["*.qm"], logger=log, vars=vars)
def prepare_packages_win32(self, vars): # <install>/lib/site-packages/PySide/* -> <setup>/PySide copydir( "{install_dir}/lib/site-packages/PySide", "{setup_dir}/PySide", logger=log, vars=vars) if self.debug: # <build>/pyside/PySide/*.pdb -> <setup>/PySide copydir( "{build_dir}/pyside/PySide", "{setup_dir}/PySide", filter=["*.pdb"], recursive=False, logger=log, vars=vars) # <install>/lib/site-packages/shiboken.pyd -> <setup>/PySide/shiboken.pyd copyfile( "{install_dir}/lib/site-packages/shiboken.pyd", "{setup_dir}/PySide/shiboken.pyd", logger=log, vars=vars) # <install>/lib/site-packages/pysideuic/* -> <setup>/pysideuic copydir( "{install_dir}/lib/site-packages/pysideuic", "{setup_dir}/pysideuic", force=False, logger=log, vars=vars) # <install>/bin/pyside-uic -> PySide/scripts/uic.py makefile( "{setup_dir}/PySide/scripts/__init__.py", logger=log, vars=vars) copyfile( "{install_dir}/bin/pyside-uic", "{setup_dir}/PySide/scripts/uic.py", force=False, logger=log, vars=vars) # <install>/bin/*.exe,*.dll -> PySide/ copydir( "{install_dir}/bin/", "{setup_dir}/PySide", filter=["*.exe", "*.dll"], recursive=False, logger=log, vars=vars) # <install>/lib/*.lib -> PySide/ copydir( "{install_dir}/lib/", "{setup_dir}/PySide", filter=["*.lib"], recursive=False, logger=log, vars=vars) # <install>/share/PySide/typesystems/* -> <setup>/PySide/typesystems copydir( "{install_dir}/share/PySide/typesystems", "{setup_dir}/PySide/typesystems", logger=log, vars=vars) # <install>/include/* -> <setup>/PySide/include copydir( "{install_dir}/include", "{setup_dir}/PySide/include", logger=log, vars=vars) # <sources>/pyside-examples/examples/* -> <setup>/PySide/examples copydir( "{sources_dir}/pyside-examples/examples", "{setup_dir}/PySide/examples", force=False, logger=log, vars=vars) # <ssl_libs>/* -> <setup>/PySide/ copydir("{ssl_libs_dir}", "{setup_dir}/PySide", filter=[ "libeay32.dll", "ssleay32.dll"], force=False, logger=log, vars=vars) # <qt>/bin/*.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{setup_dir}/PySide", filter=[ "*.dll", "designer.exe", "linguist.exe", "lrelease.exe", "lupdate.exe", "lconvert.exe"], ignore=["*d4.dll"], recursive=False, logger=log, vars=vars) if self.debug: # <qt>/bin/*d4.dll -> <setup>/PySide copydir("{qt_bin_dir}", "{setup_dir}/PySide", filter=["*d4.dll"], recursive=False, logger=log, vars=vars) # <qt>/plugins/* -> <setup>/PySide/plugins copydir("{qt_plugins_dir}", "{setup_dir}/PySide/plugins", filter=["*.dll"], logger=log, vars=vars) # <qt>/imports/* -> <setup>/PySide/imports copydir("{qt_imports_dir}", "{setup_dir}/PySide/imports", filter=["qmldir", "*.dll"], logger=log, vars=vars) # <qt>/translations/* -> <setup>/PySide/translations copydir("{qt_translations_dir}", "{setup_dir}/PySide/translations", filter=["*.qm"], logger=log, vars=vars)
def run(self,iso=None,buildisodir=None,profiles=None,systems=None,distro=None,standalone=None,source=None,exclude_dns=None,mkisofs_opts=None): # the distro option is for stand-alone builds only if not standalone and distro is not None: utils.die(self.logger,"The --distro option should only be used when creating a standalone ISO") # if building standalone, we only want --distro, # profiles/systems are disallowed if standalone: if profiles is not None or systems is not None: utils.die(self.logger,"When building a standalone ISO, use --distro only instead of --profiles/--systems") elif distro is None: utils.die(self.logger,"When building a standalone ISO, you must specify a --distro") if source != None and not os.path.exists(source): utils.die(self.logger,"The source specified (%s) does not exist" % source) # if iso is none, create it in . as "kickstart.iso" if iso is None: iso = "kickstart.iso" if buildisodir is None: buildisodir = self.settings.buildisodir else: if not os.path.isdir(buildisodir): utils.die(self.logger,"The --tempdir specified is not a directory") (buildisodir_head,buildisodir_tail) = os.path.split(os.path.normpath(buildisodir)) if buildisodir_tail != "buildiso": buildisodir = os.path.join(buildisodir, "buildiso") self.logger.info("using/creating buildisodir: %s" % buildisodir) if not os.path.exists(buildisodir): os.makedirs(buildisodir) else: shutil.rmtree(buildisodir) os.makedirs(buildisodir) # if base of buildisodir does not exist, fail # create all profiles unless filtered by "profiles" imagesdir = os.path.join(buildisodir, "images") isolinuxdir = os.path.join(buildisodir, "isolinux") self.logger.info("building tree for isolinux") if not os.path.exists(imagesdir): os.makedirs(imagesdir) if not os.path.exists(isolinuxdir): os.makedirs(isolinuxdir) self.logger.info("copying miscellaneous files") isolinuxbin = "/usr/share/syslinux/isolinux.bin" if not os.path.exists(isolinuxbin): isolinuxbin = "/usr/lib/syslinux/isolinux.bin" menu = "/usr/share/syslinux/menu.c32" if not os.path.exists(menu): menu = "/var/lib/cobbler/loaders/menu.c32" chain = "/usr/share/syslinux/chain.c32" if not os.path.exists(chain): chain = "/usr/lib/syslinux/chain.c32" files = [ isolinuxbin, menu, chain ] for f in files: if not os.path.exists(f): utils.die(self.logger,"Required file not found: %s" % f) else: utils.copyfile(f, os.path.join(isolinuxdir, os.path.basename(f)), self.api) if standalone: self.generate_standalone_iso(imagesdir,isolinuxdir,distro,source) else: self.generate_netboot_iso(imagesdir,isolinuxdir,profiles,systems,exclude_dns) if mkisofs_opts == None: mkisofs_opts = "" else: mkisofs_opts = mkisofs_opts.strip() # removed --quiet cmd = "mkisofs -o %s %s -r -b isolinux/isolinux.bin -c isolinux/boot.cat" % (iso,mkisofs_opts) cmd = cmd + " -no-emul-boot -boot-load-size 4" cmd = cmd + " -boot-info-table -V Cobbler\ Install -R -J -T %s" % buildisodir rc = utils.subprocess_call(self.logger, cmd, shell=True) if rc != 0: utils.die(self.logger,"mkisofs failed") self.logger.info("ISO build complete") self.logger.info("You may wish to delete: %s" % buildisodir) self.logger.info("The output file is: %s" % iso) return True
def copy_stations(_event, stationfolder, targetstadir): originsta = os.path.join(stationfolder, "STATIONS.%s" % _event) targetsta = os.path.join(targetstadir, "STATIONS.%s" % _event) if os.path.exists(originsta): copyfile(originsta, targetsta, verbose=False)
def __download_item(self, item): src = item['url'] dst = os.path.join(NOAH_DOWNLOAD_HOME, item['type'], item['name']) self.logger.info("Downloading " + src + " to " + dst) copyfile(src, dst) pass
def test_rustfmt_command(self): fixture = os.path.join('fixtures', 'main.rs') RustFMT(self._check_rustfmt, 0, 0, copyfile(fixture), self.settings)
def run(self,iso=None,buildisodir=None,profiles=None,systems=None,distro=None,standalone=None,source=None,exclude_dns=None,force_server=None,no_local_hdd=None): self.settings = self.config.settings() # the distro option is for stand-alone builds only if not standalone and distro is not None: utils.die(self.logger,"The --distro option should only be used when creating a standalone ISO") # if building standalone, we only want --distro, # profiles/systems are disallowed if standalone: if profiles is not None or systems is not None: utils.die(self.logger,"When building a standalone ISO, use --distro only instead of --profiles/--systems") elif distro is None: utils.die(self.logger,"When building a standalone ISO, you must specify a --distro") if source != None and not os.path.exists(source): utils.die(self.logger,"The source specified (%s) does not exist" % source) # if iso is none, create it in . as "kickstart.iso" if iso is None: iso = "kickstart.iso" if buildisodir is None: buildisodir = self.settings.buildisodir else: if not os.path.isdir(buildisodir): utils.die(self.logger,"The --tempdir specified is not a directory") (buildisodir_head,buildisodir_tail) = os.path.split(os.path.normpath(buildisodir)) if buildisodir_tail != "buildiso": buildisodir = os.path.join(buildisodir, "buildiso") self.logger.info("using/creating buildisodir: %s" % buildisodir) if not os.path.exists(buildisodir): os.makedirs(buildisodir) else: shutil.rmtree(buildisodir) os.makedirs(buildisodir) # if base of buildisodir does not exist, fail # create all profiles unless filtered by "profiles" imagesdir = os.path.join(buildisodir, "images") isolinuxdir = os.path.join(buildisodir, "isolinux") self.logger.info("building tree for isolinux") if not os.path.exists(imagesdir): os.makedirs(imagesdir) if not os.path.exists(isolinuxdir): os.makedirs(isolinuxdir) self.logger.info("copying miscellaneous files") isolinuxbin = "/usr/share/syslinux/isolinux.bin" if not os.path.exists(isolinuxbin): isolinuxbin = "/usr/lib/syslinux/isolinux.bin" menu = "/var/lib/cobbler/loaders/menu.c32" chain = "/usr/share/syslinux/chain.c32" if not os.path.exists(chain): chain = "/usr/lib/syslinux/chain.c32" files = [ isolinuxbin, menu, chain ] for f in files: if not os.path.exists(f): utils.die(self.logger,"Required file not found: %s. Try 'yum install cobbler-loaders'." % f) else: utils.copyfile(f, os.path.join(isolinuxdir, os.path.basename(f)), self.api) if standalone: self.generate_standalone_iso(imagesdir,isolinuxdir,distro,source) else: self.generate_netboot_iso(imagesdir,isolinuxdir,profiles,systems,exclude_dns,force_server, no_local_hdd) # removed --quiet cmd = "mkisofs -o %s -r -b isolinux/isolinux.bin -c isolinux/boot.cat" % iso cmd = cmd + " -no-emul-boot -boot-load-size 4" cmd = cmd + " -boot-info-table -V Cobbler\ Install -R -J -T %s" % buildisodir rc = utils.subprocess_call(self.logger, cmd, shell=True) if rc != 0: utils.die(self.logger,"mkisofs failed") self.logger.info("ISO build complete") self.logger.info("You may wish to delete: %s" % buildisodir) self.logger.info("The output file is: %s" % iso) return True