2012-11-16

New version of deployment of all JAR files to a artifact repository

rem *********************************************************************
rem * Peter Grape,Mogul AB                                              *
rem * Run this script in the <RAD homedir>/runtimes/portal_v70_stub and *
rem * <RAD homedir>/runtimes/base_v7_stub                               *
rem * execute with "<thisfile>.vbs > mavenwps.bat" and "<thisfile>.vbs > mavenwas.bat"*

rem *********************************************************************

    REM Change these to you liking
  
    urlPath = "http://host/artifactory/libs-ibm-local"
    repoPath = "libs-ibm-local"

    grpId = "unknown"
    version = "unknown"
    artId = "unknown"

    companygrpId = "com.company.portal"

Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "."

Set objFolder = objFSO.GetFolder(objStartFolder)
    objRootFolder = objFolder.Path

set wshell = createobject("wscript.shell")

outFile=".\upload.bat"
Set uploadFile = objFSO.CreateTextFile(outFile,True)

outFile=".\deps.pom"
Set depsFile = objFSO.CreateTextFile(outFile,True)

depsrunFilename=".\uploaddeps.bat"
Set depsrunFile = objFSO.CreateTextFile(depsrunFilename,True)

    SetversionAndType objFolder

    uploadFile.Write "@echo off"& vbCrLf
    uploadFile.Write "REM File created by Peter Grape"& vbCrLf
    uploadFile.Write "set mvn_options=deploy:deploy-file -Dversion=" + versionID + " -Dpackaging=jar -DrepositoryId=" + repoPath + " -Durl=" + urlPath & vbCrLf
    uploadFile.Write "set runtime_root=" + objRootFolder & vbCrLf

    RunUploadSubfolders objFolder
    uploadFile.Close

rem currentDir = wshell.currentdirectory
depsrunFile.write "set mvn_options=deploy:deploy-file -DartifactId=" + artId + " -DgroupId=" + companygrpid + " -Dversion=" + VERSION + " -Dpackaging=pom -DrepositoryId=" + repoPath + " -Durl=" + urlPath + vbCrLf
depsrunFile.write "set runtime_root=" + wshell.currentdirectory + vbCrLf
depsrunFile.write "call mvn %mvn_options%  -Dfile=""%runtime_root%\deps.pom""" & vbCrLf
depsrunFile.close

Set objFolder = objFSO.GetFolder(objStartFolder)
    objRootFolder = objFolder.Path


depsFile.Write "<project xmlns=""http://maven.apache.org/POM/4.0.0"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""" & vbCrLf
depsFile.Write "    xsi:schemaLocation=""http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"">" & vbCrLf
depsFile.Write "    <modelVersion>4.0.0</modelVersion>"& vbCrLf
depsFile.Write "    <groupId>com.company.portal</groupId>"& vbCrLf
depsFile.Write "    <artifactId>" + artId + "</artifactId>"& vbCrLf
depsFile.Write "    <version>" + version + "</version>"& vbCrLf
depsFile.Write "    <packaging>pom</packaging>"& vbCrLf
depsFile.Write "    <name>IBM WebSphere Server " + version + "</name>"& vbCrLf
depsFile.Write "    <description>All the JAR files in the IBM WebSphere server " + version + "</description>"& vbCrLf
depsFile.Write "    <organization>"& vbCrLf
depsFile.Write "        <name>company IT AB</name>"& vbCrLf
depsFile.Write "        <url>http://www.company.com/</url>"& vbCrLf
depsFile.Write "    </organization>"& vbCrLf
depsFile.Write "    <developers>"& vbCrLf
depsFile.Write "        <developer>"& vbCrLf
depsFile.Write "            <email>peter.grape@company.com</email>"& vbCrLf
depsFile.Write "            <url>http://www.company.com</url>"& vbCrLf
depsFile.Write "            <organization>company IT AB</organization>"& vbCrLf
depsFile.Write "            <organizationUrl>http://www.company.com</organizationUrl>"& vbCrLf
depsFile.Write "        </developer>"& vbCrLf
depsFile.Write "    </developers>"& vbCrLf
depsFile.Write "    <dependencies>"& vbCrLf

RunDepsSubfolders objFolder

depsFile.Write "    </dependencies>"& vbCrLf
depsFile.Write "    <issueManagement>"& vbCrLf
depsFile.Write "            <system>Jira</system>"& vbCrLf
depsFile.Write "            <url>http://jira.company.com</url>"& vbCrLf
depsFile.Write "        </issueManagement>"& vbCrLf
depsFile.Write "    </project>"& vbCrLf

depsFile.Close

Sub RunUploadSubfolders(Folder)
    For Each Subfolder in Folder.SubFolders
        Set objFolder = objFSO.GetFolder(Subfolder.Path)
        relPath = Replace(Subfolder.Path,objRootFolder,"")
        relID = Replace(relPath,"\",".")
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
            sExtension = objFSO.GetExtensionName(objFile.Name)
            if (sExtension = "jar") Then
                sBasename =  objFSO.GetBaseName(objFile.Name)
                uploadFile.Write "call mvn %mvn_options% -DgroupId=" + grpID + relID + " -DartifactId=" + sBasename + " -Dfile=""%runtime_root%" + relPath + "\" + objFile.Name + """" & vbCrLf
            end if
        Next
        RunUploadSubfolders Subfolder
    Next
End Sub
  
Sub RunDepsSubfolders(Folder)
    For Each Subfolder in Folder.SubFolders
rem         depsFile.Write Subfolder.Path
        Set objFolder = objFSO.GetFolder(Subfolder.Path)
        relPath =  Replace(Subfolder.Path,objRootFolder,"")
        relID = Replace(relPath,"\",".")
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
            sExtension = objFSO.GetExtensionName(objFile.Name)
            if (sExtension = "jar") Then
                sBasename =  objFSO.GetBaseName(objFile.Name)
                depsFile.Write "<dependency>"& vbCrLf
                depsFile.Write "<groupId>" + grpId + relID + "</groupId>"& vbCrLf
                depsFile.Write "<artifactId>" + sBasename + "</artifactId>"& vbCrLf
                depsFile.Write "<version>" +  version + "</version>"& vbCrLf
                depsFile.Write "</dependency>"& vbCrLf
            end if
        Next
        RunDepsSubfolders Subfolder
    Next
End Sub

Sub SetversionAndType(Folder)
    isBase = InStr(Folder.name,"base")
    isPortal = InStr(Folder.name,"portal")
    wscript.echo "isBase:" & isBase
    wscript.echo "isPortal:" & isPortal
    if (isBase = 1) then
        grpID = "com.ibm.was"
        artId = "ibm-was"
    end if
    if (isPortal = 1) then
        grpID = "com.ibm.wps"
        artId = "ibm-wps"
    end if
    versionStart = InStr(Folder.name,"_v")
    versionEnd = InStr(versionStart + 2,Folder.name,"_")
    if (versionStart <> 0) and (versionEnd <> 0) then
        versionStr = Mid(Folder.name,versionStart + 2,versionEnd - (versionStart + 2))
        wscript.echo "version:" + versionStr
        if (Len(versionStr) = 1) then
            versionStr = versionStr + "0"
        end if
        versionID = Left(versionStr,1) & "." & Right(versionStr,1)
        wscript.echo "Version:" + versionStr & "," & versionID
    else
        wscript.echo "version not found in folder name"
        wscript.quit
    end if
end sub