用作安裝後處理的 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
Add a trackback
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "MUNGB"
© hover year to navigate month: powered by django