2012-03-01

VBS Script for generating all the dependencies to IBM LIB files

This script can be used a to generate all the dependency tags for all the files that the Rational Application Developer (RAD) environment is using to when coding for WebSphere Portal 7 & 8 as well as the application server.

rem **********************************************************************
rem * Peter Grape, 2012-2013, portalcoder.blogspot.com                   *
rem * Run this script in the <RAD homedir>/runtimes and it will generate *
rem * all the files you need to upload to a maven repository             *
rem * Update the URL and the Maven headers to your liking first          *
rem **********************************************************************

    urlPath = "http://host:10000/artifactory/libs-ibm-local"
    repoPath = "libs-ibm-local"

    grpId = "unknown"
    commongrpId = "com.company.portal"
    version = "unknown"
    artId = "ibm-was"

Set objFSO = CreateObject("Scripting.FileSystemObject")
startFolder = "."
   
Set objStartFolder = objFSO.GetFolder(startFolder)
    For Each Subfolder in objStartFolder.SubFolders
        wscript.echo "Found folder:" + Subfolder.Name
        IterateARuntimeFolder objStartFolder,Subfolder
    Next

    ignoredFolder = false

Sub IterateARuntimeFolder(RootFolder,objFolder)

    objRootFolder = objFolder.Path
    ignoredFolder = false

    SetversionAndType objFolder

    if (ignoredFolder = false) Then

        set wshell = createobject("wscript.shell")

rem        depsrunFilename=objRootFolder + "\uploaddeps_" + objFolder.name + ".bat"
rem        Set depsrunFile = objFSO.CreateTextFile(depsrunFilename,True)
        rem currentDir = wshell.currentdirectory
rem        depsrunFile.write "set mvn_deps_options=deploy:deploy-file -DartifactId=" + artId + " -DgroupId=" + commongrpid + " -Dversion=" + version + " -Dpackaging=pom -DrepositoryId=" + repoPath + " -Durl=" + urlPath + vbCrLf
rem        depsrunFile.write "set runtime_deps_root=" + RootFolder.Path + vbCrLf
rem        depsrunFile.write "call mvn %mvn_deps_options%  -Dfile=""%runtime_deps_root%\deps_" + objFolder.name + ".pom""" & vbCrLf
rem        depsrunFile.close

        DoUploadFolders RootFolder,objFolder

        REM We need to reset to the start again...
        Set objFolder = objFSO.GetFolder(objRootFolder)
        DoDepsFolders objFolder

    end if
End Sub

Sub DoUploadFolders(RootFolder,Folder)

    outFile=RootFolder.Path + "\upload_" + Folder.Name + ".bat"
    Set uploadFile = objFSO.CreateTextFile(outFile,True)

    uploadFile.Write "@echo off"& vbCrLf
    uploadFile.Write "REM File created by Peter Grape"& vbCrLf
    uploadFile.Write "set mvn_options=deploy:deploy-file -Dversion=" + version + " -Dpackaging=jar -DrepositoryId=" + repoPath + " -Durl=" + urlPath & vbCrLf
    uploadFile.Write "set runtime_root=" + Folder.Path & vbCrLf
    uploadFile.write "set mvn_deps_options=deploy:deploy-file -DartifactId=" + artId + " -DgroupId=" + commongrpid + " -Dversion=" + version + " -Dpackaging=pom -DrepositoryId=" + repoPath + " -Durl=" + urlPath + vbCrLf
    uploadFile.write "set runtime_deps_root=" + RootFolder.Path + vbCrLf
    uploadFile.write "call mvn %mvn_deps_options%  -Dfile=""%runtime_deps_root%\deps_" + Folder.name + ".pom""" & vbCrLf
    RunUploadSubfolders Folder.Path,Folder,uploadFile
    uploadFile.Close
End Sub

Sub RunUploadSubfolders(StartPath,runFolder,uploadFile)

    For Each Subfolder in runFolder.SubFolders
        Set objFolder = objFSO.GetFolder(Subfolder.Path)
        relPath = Replace(Subfolder.Path,StartPath,"")
        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 StartPath,Subfolder,uploadFile
    Next
End Sub
   
Sub DoDepsFolders(Folder)

     outFile = ".\deps_" + Folder.Name + ".pom"
    Set depsFile = objFSO.CreateTextFile(outFile,True)

    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>" + commongrpId + "</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</organization>"& vbCrLf
    depsFile.Write "            <organizationUrl>http://www.company.com</organizationUrl>"& vbCrLf
    depsFile.Write "        </developer>"& vbCrLf
    depsFile.Write "    </developers>"& vbCrLf
    depsFile.Write "<dependencies>"& vbCrLf

    RunDepsSubfolders Folder,Folder,depsFile
    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

End Sub

Sub RunDepsSubfolders(StartFolder,Folder,depsFile)
    For Each Subfolder in Folder.SubFolders
rem         depsFile.Write Subfolder.Path
        Set objFolder = objFSO.GetFolder(Subfolder.Path)
        relPath = Replace(Subfolder.Path,StartFolder.Path,"")
        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 StartFolder,Subfolder,depsFile
    Next
End Sub

Sub SetversionAndType(Folder)
    isBase = InStr(Folder.name,"base")
    isPortal = InStr(Folder.name,"portal")
REM wscript.echo "isBase:" & isBase
REM 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))
rem     wscript.echo "version:" + versionStr
        if (Len(versionStr) = 1) then
            versionStr = versionStr + "0"
        end if
        version = Left(versionStr,1) & "." & Right(versionStr,1)
        wscript.echo "Version:" & version
        ignoredFolder = false
    else
        wscript.echo "version not found in folder name ignored"
        ignoredFolder = true
    end if
end sub


No comments:

Post a Comment