| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- # -*- coding:utf-8 -*-
- # python ctemplate.py test
- import io
- import sys
- import datetime
- reload(sys)
- sys.setdefaultencoding('utf-8')
- class ctemplate:
- __fileName = ' '
- __sourceName = ' '
- __headerName = ' '
- __time = datetime.datetime.now().strftime('%Y.%m.%d')
- __fileComments = {'@Modify':'\n '+__time+unicode('.Kinve:1.创建文件'),
- '@Brief':' ',
- '@Date':__time,
- '@Version':'V0.1',
- '@Author':'Kinve JQ',
- '@File':" ",
- }
- __CommentsOrder = ('@File','@Author','@Version','@Date','@Brief','@Modify')
- def __init__(self,s):
- self.__fileName = s
- self.__sourceName = s + ".c"
- self.__headerName = s + '.h'
- def generateCommentsAtTop(self,name):
- self.__fileComments['@File'] = name
- comments = ('/**\n')
- #find max length of string
- maxLen = 0
- for s in self.__CommentsOrder:
- if(len(s) > maxLen):
- maxLen = len(s)
- for k in self.__CommentsOrder:
- alignSpaceAmount = maxLen - len(k) + 4
- alignSpace = alignSpaceAmount * ' '
- comments += ('* '+ k + ':'+ alignSpace + self.__fileComments[k] + '\n')
- comments += ('**/\n\n')
- return comments
- def generateCommentsInTheEnd(self):
- return ("\n/********************* (C) COPYRIGHT Kinve JQ *******END OF FILE ********/\n")
- def createSource(self):
- fh = io.open(self.__sourceName,mode='w',encoding='utf-8')
- cm = self.generateCommentsAtTop(self.__sourceName)
- cm += ("#include \"%s\"\n" %self.__headerName)
- cm += ("\n"*5)
- cm += self.generateCommentsInTheEnd()
- fh.write(unicode(cm))
- fh.close()
- def createHeader(self):
- fh = io.open(self.__headerName,mode='w',encoding='utf-8')
- cm = self.generateCommentsAtTop(self.__headerName)
- cm += "#ifndef __%s_H_\n" %self.__fileName.upper()
- cm += "#define __%s_H_\n" %self.__fileName.upper() + "\n"
- cm += "/* 包含的头文件---------------------------------------------------------------*/\n"
- cm += "#include <stdlib.h>\n"
- cm += "/* 宏定义 --------------------------------------------------------------------*/\n\n"
- cm += "/* 类型定义 ------------------------------------------------------------------*/\n\n"
- cm += "/* 常量定义 ------------------------------------------------------------------*/\n\n"
- cm += "/* 宏定义 --------------------------------------------------------------------*/\n\n"
- cm += "/* 函数定义-------------------------------------------------------------------*/\n\n"
- cm += ("\n"*1)
- cm += "#endif\n"
- cm += self.generateCommentsInTheEnd()
- fh.write(unicode(cm))
- fh.close()
- def createTemplatePairs(self):
- self.createSource()
- self.createHeader()
- if __name__ == '__main__':
- if len(sys.argv) != 2:
- sys.stderr.write("please input corret parameter")
- else:
- s = sys.argv[1]
- ct = ctemplate(s)
- ct.createTemplatePairs()
|