码迷,mamicode.com
首页 > 编程语言 > 详细

Python实现扫描作业配置自动化

时间:2016-01-08 23:28:46      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

持续集成平台接入扫描作业是一项繁琐而又需要细致的工作,于是趁着闲暇时间,将代码扫描作业用Python代码实现了配置自动化。

 

每次配置作业的过程中,都会在checkcode1或者checkcode3上 E:\jenkins\workspace\CHECKSTYLE目录下建立一个对应的文件夹,将build.xml文件放进去,然后将规范扫描安全脚本中作业名称进行3次替换。这个过程常常被弄错,或者被遗忘。

但是,有了下面的脚本,一切都不是问题。

先看流程图:

技术分享 

Python代码如下:

技术分享
 1 #!usr/bin/python
 2 # -*- coding:utf-8 -*- 
 3 # Filename:auto.py
 4 
 5 import os
 6 
 7 print(请输入作业名称(默认“_CODE”结尾,无须再输入_CODE):)
 8 input_user=input()
 9 print(确认么?(y/n))
10 commit = input()
11  
12 while  0==len(input_user) or (commit!=y and commit!=Y):
13     print(请输入作业名称(默认“_CODE”结尾,无须再输入_CODE):)
14     input_user=input()
15     print(确认么?(y/n))
16     commit = input()
17 #打桩,输出作业名字    
18 print(你输入的作业名是:%s%(input_user))
19 
20 #准备好相应的资源
21 jobName=input_user+_CODE
22 jobName_upper=jobName.upper()
23 jobName_lower=jobName.lower()
24 
25 #如果文件目录不存在,就创建文件目录
26 dest_dir=E:+os.sep+jenkins+os.sep+workspace+os.sep+CHECKSTYLE+os.sep+input_user.lower()
27 if not os.path.exists(dest_dir):
28     os.makedirs(dest_dir)
29     print(成功创建目录%s%(dest_dir))
30 else:
31     print(目录%s已存在,可直接操作%(dest_dir))
32     
33 #拼接字符串。注:实际中拼接字符串比这复杂,这里简化只是为了演示方便。
34 str_1=<xml>\n
35 str_2=\t<djfldfl>+jobName_upper+</djfldfl>\n
36 str_3=\t<ad>dlfkl</ad>\n
37 str_4=</xml>\n
38 list=[str_1,str_2,str_3,str_4]
39 
40 #写入到文件中
41 f = open(dest_dir+os.sep+build.xml, w)
42 f.writelines(list)
43 print(写入build.xml完毕)
44 f.close()
Python代码

 

将以上的文件保存在C:\zzPythonTest目录下,文件名为“auto.py”。

有了以上的步骤,还是不够方便嘛,还要进入控制台进行Python程序的解释运行,这完全可以用批处理来代替。

批处理文件内容如下:

技术分享
@echo off
cd C:\zzPythonTest
python auto.py
pause
批处理文件

之后每次只需要点击auto.bat文件就可以达到效果啦~

 技术分享

 查看E盘,果然建立了E:\jenkins\workspace\CHECKSTYLE目录:

 技术分享

打开build.xml文件,果然达到了预期的效果:

 技术分享

总结:

  1. 对容错的判定算法调整了很久才调到这个比较合理的结构。确认是非常必要的一步,因为“智者千虑,必有一失”。
  2. 创建多级目录时,本来采用的是循环创建目录的方式,后来查询到了一个简洁而强大的API,就是makedirs()。
  3. 此功能用java也能实现,但是用Python的好处在于简洁有力。假如用java实现这样一个功能,java代码量几乎是Python的两倍还多。
  4. 此功能只利用了Python中最基础的知识,甚至都没有使用类和对象。这是因为Python在这里处理的仅仅是流程,故不用OO的写法(其实还夹杂着笔者对C语言的怀念,毕竟C语言是笔者接触的第一门计算机语言)。

Python实现扫描作业配置自动化

标签:

原文地址:http://www.cnblogs.com/helloIT/p/5115108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!