Skip to content

Instantly share code, notes, and snippets.

@serngawy
Last active August 29, 2015 14:27
Show Gist options
  • Save serngawy/ea6866ece2a8b3b7352d to your computer and use it in GitHub Desktop.
Save serngawy/ea6866ece2a8b3b7352d to your computer and use it in GitHub Desktop.
'''
Created on Aug 10, 2015
@author: mohamedel-serngawy
'''
import glob, os
import sys
import time
import fnmatch
import xml.etree.ElementTree as EleTree
# checking whether path and filename are given.
#if len(sys.argv) != 3:
# print "Usage : python ReplaceVersionCls.py <project path> <oldVersion Str> <newVersion Str>"
# sys.exit()
#target_dir = sys.argv[1]
#oldVersion = sys.argv[2]
#newVersion = sys.argv[3]
#===============================================================================
# Not used
#===============================================================================
def replacePOMv(POMFile, oldVersioStr, newVersionStr):
EleTree.register_namespace('', 'http://maven.apache.org/POM/4.0.0')
tree = EleTree.parse(POMFile)
root = tree.getroot()
for pVersion in root.findall('./','parent/version'):
pVersionStr = pVersion.text
if pVersionStr.find(oldVersioStr) != -1:
#print pVersionStr
pVersionStr = pVersionStr.replace(oldVersioStr, newVersionStr)
pVersion.text = pVersionStr
for version in root.findall('./','version'):
versionStr = version.text
if versionStr.find(oldVersioStr) != -1:
versionStr = versionStr.replace(oldVersioStr, newVersionStr)
version.text = versionStr
#print version.text
tree.write(POMFile)
def replacePOM(POMFile, oldVersionStr, newVersionStr):
file = open(POMFile,"r")
pomStr = file.read()
file.close();
pomStr = pomStr.replace('git:ssh://git.opendaylight.org:29418','git:ssh://review.inocybe.com:29418/odl')
pomStr = pomStr.replace('<nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>','<nexusproxy>http://repo.inocybe.com/repository</nexusproxy>')
pomStr = pomStr.replace('<nexus.repository.release>opendaylight.release</nexus.repository.release>','<nexus.repository.release>ext-release-local</nexus.repository.release>')
pomStr = pomStr.replace('<nexus.repository.snapshot>opendaylight.snapshot</nexus.repository.snapshot>','<nexus.repository.snapshot>ext-snapshot-local</nexus.repository.snapshot>')
#pomStr = pomStr.replace('http://git.opendaylight.org/gerrit','git:ssh://review.inocybe.com:29418/odl')
pomStr = pomStr.replace(oldVersionStr, newVersionStr)
file = open(POMFile,"w")
file.seek(0)
file.write(pomStr)
file.close()
def updateProjectPOMFiles(dir, fileName,oldVersioStr, newVersionStr):
for root, dirnames, filenames in os.walk(dir):
for filename in fnmatch.filter(filenames, fileName):
pomF = os.path.join(root, filename)
print pomF
replacePOM(pomF, oldVersioStr, newVersionStr)
def updateArtifactDir(dir,oldFileName, newFileName):
for root, dirnames, filenames in os.walk(dir):
for dir in fnmatch.filter(dirnames, oldFileName):
dirName = os.path.join(root, dir)
newDirName = dirName.replace('SNAPSHOT', newFileName)
print newDirName
os.rename(dirName, newDirName)
def updateArtifactPOMFiles(dir,oldFileName, newFileName):
for root, dirnames, filenames in os.walk(dir):
for filename in fnmatch.filter(filenames, oldFileName):
pomF = os.path.join(root, filename)
newPomF = pomF.replace('SNAPSHOT', newFileName)
print newPomF
os.rename(pomF, newPomF)
def removeRemoteRepo(dir):
for root, dirnames, filenames in os.walk(dir):
for filename in fnmatch.filter(filenames, '_remote.repositories'):
pomF = os.path.join(root, filename)
print pomF
os.remove(pomF)
#removeRemoteRepo('/Users/mserngawy/controller')
#updateArtifactDir('/Users/mserngawy/controller', '*SNAPSHOT*', 'IT')
#updateArtifactPOMFiles('/Users/mserngawy/controller', '*SNAPSHOT*', 'IT')
#updateProjectPOMFiles('/Users/mserngawy/controller','*.xml','SNAPSHOT','IT')
updateProjectPOMFiles('/Volumes/Stoarge/Inocybe-source/controller','pom.xml','SNAPSHOT','IT')
updateProjectPOMFiles('/Volumes/Stoarge/Inocybe-source/controller','features.xml','SNAPSHOT','IT')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment