用作安裝後處理的 script 又更完整了一點。我還不會包 .deb ,等學會了以後再把 script 擴充成自動把 .tar.gz 的內容作成 .deb 。
茲列於後:
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ 用來取代 Intel Compiler 在 Debian 上手動安裝時, <INSTALLDIR>/bin 目錄內各指令稿內的安裝目錄位置。 $Id: icinstconv.py,v 1.1 2005/06/22 09:41:48 yungyuc Exp $ """ class parameters: """ 處理指令行引數。 """ ######################################################################## # def __init__(self): self.process() def process(self): """ 目前沒有任何要處理的引數。 """ from optparse import OptionParser, OptionGroup op = OptionParser( usage = "usage: %prog <dir>", version = "%prog, $Revision: 1.1 $" ) self.op = op (self.options, self.args) = self.op.parse_args() params = parameters() # ######################################################################## ######################################################################## # 給 Intel C Compiler 用的取代資訊 ORIGTAG = "<INSTALLDIR>" # ######################################################################## def subs(old, new, fn): """ 執行取代工作的函式 old: 被取代字串 new: 新取代字串 fn: 工作的目標檔名 """ ######################################################################## # import re # 讀取來源資料 f = open( fn, 'r' ); orig = f.read(); f.close() # 執行取代 replaced = re.sub( old, new, orig ) # 把取代後的整筆資料寫回檔案 f = open( fn, 'w' ) f.write( replaced ) f.close() # ######################################################################## def main(): """ 主函式。 """ ######################################################################## # import sys import os from popen2 import popen2 if len(params.args) < 1: print "請指定要處理的目錄。" print "" params.op.print_help() sys.exit(0) # 找出應處理的檔案 (名) so, si = popen2( 'file %s' % os.path.join(params.args[0], '*') ) scripts = [] for line in so.readlines(): tokens = line.split(':') fn, des = tokens[:2] if des.find('text') != -1: scripts.append(fn) # 對這些檔案作字串取代 for script in scripts: subs(ORIGTAG, os.getcwd(), script) print script, "processed" # ######################################################################## if __name__ == '__main__': main()
Posted by yungyuc
at 17:45,
0 comment,
0 trackback.
Navigate
- Previous: sarge 和 Fedore Core 3 的 stack maximum 預設得不一樣 @2005/06/22
- Next: Plone Shell @2005/06/22
Add a trackback
Please send trackback to: http://blog.seety.org/everydaywork/2005/6/22/363/trackback/.
Add a comment