Improve the branch cutting script
[releng/builder.git] / scripts / branch_cut / branch_cut.awk
diff --git a/scripts/branch_cut/branch_cut.awk b/scripts/branch_cut/branch_cut.awk
deleted file mode 100755 (executable)
index a317662..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-#!/usr/bin/awk -f
-# SPDX-License-Identifier: EPL-1.0
-##############################################################################
-# Copyright (c) 2017 The Linux Foundation and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-##############################################################################
-
-BEGIN {
-    new_tag                     = new_reltag       # new release tag
-    curr_tag                    = curr_reltag      # current release tag
-    prev_tag                    = prev_reltag      # previous release tag
-
-    new_release                 = tolower(new_tag)
-    curr_release                = tolower(curr_tag)
-    prev_release                = tolower(prev_tag)
-
-    ws = "[\\t ]*"                                 # white-spaces
-    startpat = "^" ws "- project:"                 # start pattern
-    endpat = startpat                              # end pattern
-    op = "^" ws "---" ws "$"                       # match files starts with "---"
-
-    next_release_tag            = "^" ws "next-release-tag: '{stream}'"
-    master                      = "'master'"
-    new_branch                  = "'stable/" new_release "'"
-    curr_branch                 = "'stable/" curr_release "'"
-    prev_branch                 = "'stable/" prev_release "'"
-
-    # replace block to add new release
-    new_rel_yaml_tag            = "- " new_release ":";
-    br_master_yaml_tag          = "    branch: 'master'";
-    jre_yaml_tag                = "    jre: 'openjdk11'";
-    java_version_yaml_tag       = "    java-version: 'openjdk11'";
-    curr_rel_yaml_tag           = "- " curr_release ":";
-    br_stable_curr_yaml_tag     = "    branch: 'stable/" curr_release "'";
-
-    # replace block for autorelease-projects
-    #new_rel_yaml_tag           = "- " new_release ":";
-    next_rel_tag_new_yaml_tag   = "    next-release-tag: '{stream}'";
-    #br_master_yaml_tag         = "    branch: 'master'";
-    jdk_yaml_tag                = "    jdk: 'openjdk8'";
-    intg_test_yaml_tag          = "    integration-test: " new_release;
-    extra_mvn_opts_tag          = "    extra-mvn-opts: -Dsft.heap.max=4g"
-    #curr_rel_yaml_tag          = "- " curr_release ":";
-    next_rel_tag_curr_yaml_tag  = "    next-release-tag: '{stream}'";
-    #br_stable_curr_yaml_tag    = "    branch: 'stable/" curr_release "'";
-
-    # search patterns
-    smaster = "^" ws "- master:"
-    sstream = "^" ws "stream:"
-    srelease = "^" ws "- " curr_release ":"
-    snext_release_tag = "^" ws "next-release-tag:"
-    #if (l ~ next_release_tag) { next_release_tag = 1; continue; }
-    sbranch = "^" ws "branch: " master
-    sfunctionality = "^" ws "functionality:"
-
-    debug = 0                                   # set to 1 to print debug info
-    file_format = 2                             # project stream format
-
-    release_found = 0
-    stream_found = 0
-    nrt_found = 0
-    func_found = 0
-}
-
-{
-    # exit if release info is not available
-    if ((length(new_release) == 0 || length(curr_release) == 0)) {
-        exit;
-    }
-
-    # read all lines of the file into an array
-    file[NR] = $0
-}
-
-END {
-    n = NR                                      # total number of lines
-    find_blks()                                 # gets number of blocks between start/end pattern
-    process_blk(arr_bs[1], arr_be[1], 1)        # pass start and end of each block and process first block
-    update_file(arr_be[1])                      # write processed content
-
-    if (debug) {
-        print "number of blocks="nb;
-        print "total records in file[]="length(f);
-        print "size of firstblk[]="length(firstblk);
-        print "size of newblk[]="length(newblk);
-        print "size of oldmaster[]="length(oldmaster);
-        print "size of newblk[]="length(newblk);
-    }
-}
-
-function find_blks(   i, l, bs, be) {
-    for (i = 1; i <= n; i++) {
-        l = file[i]
-        if (l ~ startpat) project = 1                        # start pattern
-        if (bs > be && l ~ endpat) arr_be[++be] = i - 1      # block end
-        if (           l ~ startpat) arr_bs[++bs] = i - 1    # block start
-    }
-    nb = be
-
-    # to handle files with single blocks
-    if (nb == 0 && length(file) > 1 && project == 1) {
-        nb = 1
-        arr_bs[1] = 1                               # start after line '---'
-        arr_be[1] = length(file)                    # set length of the file
-    }
-
-    if (debug) {
-        for (i = 1; i < nb; i++)
-            print "find_blks: nb=" nb " arr_bs[" i "]="arr_bs[i]" arr_be[" i "]="arr_be[i];
-    }
-}
-
-function process_blk(bs, be, bn,   i, l) {
-    if (debug) {
-        print "process_blk: bn=" bn ", bs=" bs " ,be=" be
-    }
-
-    # get the first block
-    for (i = bs + 1; i <= be ; i++) {
-        l = file[i]
-        # determine file format
-        if (l ~ /stream:/) {
-            x=index(l,":")
-            s = substr(l, x+2, length(l) - x)
-            if (s == curr_release || s == new_release) {
-                file_format = 1
-            } else if (length(s) == 0 ) {
-                file_format = 0
-            }
-        }
-        firstblk[++nex] = l
-    }
-
-    if (debug) {
-        print "process_blk: stream='" s "' length(s)=" length(s)" file_format='" file_format "'"
-    }
-
-    # Handle single stream format
-    if (file_format == 1) {
-        # create new block to be inserted
-        for (i = 1; i <= length(firstblk); i++) {
-            l = firstblk[i]
-            if (l ~ /name:|stream:/) sub(curr_release, new_release, l)
-            newblk[++nex1] = l
-        }
-        # re-create old block and change master to stable/branch
-        for (i = 1; i <= length(firstblk)-1; i++) {
-            l = firstblk[i]
-            if (l ~ /branch:/) sub(master, curr_branch, l)
-            oldmaster[++nex2] = l
-        }
-    } else if (file_format == 0) {
-        # Handle multi-stream format
-        for (i = 1; i <= length(firstblk)-1; i++) {
-            l = firstblk[i]
-            if (l ~ sstream) { stream_found = 1; }
-            if (l ~ srelease) { release_found = 1; indent = substr(l, 1, index(l, "-")-1); continue; }
-            if (l ~ sfunctionality) { func_found = 1; }
-            if (l ~ snext_release_tag) { nrt_found = 1; }
-            if (l ~ sbranch) {
-                # append lines
-                if (stream_found && release_found && !nrt_found) {
-                    newblk[++nex3] = indent new_rel_yaml_tag;
-                    newblk[++nex3] = indent br_master_yaml_tag;
-                    newblk[++nex3] = indent java_version_yaml_tag;
-                    newblk[++nex3] = indent curr_rel_yaml_tag;
-                    newblk[++nex3] = indent br_stable_curr_yaml_tag;
-                    stream_found = 0;
-                    release_found = 0;
-                    func_found = 0;
-                    continue;
-                }
-                if (stream_found && release_found && nrt_found) {
-                    newblk[++nex3] = indent new_rel_yaml_tag;
-                    newblk[++nex3] = indent next_rel_tag_new_yaml_tag;
-                    newblk[++nex3] = indent br_master_yaml_tag;
-                    newblk[++nex3] = indent intg_test_yaml_tag;
-                    newblk[++nex3] = indent extra_mvn_opts_tag;
-                    newblk[++nex3] = indent curr_rel_yaml_tag;
-                    newblk[++nex3] = indent next_rel_tag_curr_yaml_tag;
-                    newblk[++nex3] = indent br_stable_curr_yaml_tag;
-                    stream_found = 0; release_found = 0; nrt_found=0;
-                    continue;
-                }
-            }
-            newblk[++nex3] = l
-
-            if (debug) {
-                print "process_blk: append(newblk[]) : stream="stream" release_found="release_found
-            }
-        }
-    } else {
-        # exit on unknown file format
-        exit;
-    }
-}
-
-function update_file(be,   i, j, l) {
-    i = 1
-    # handle lines before "---"
-    while (i <= n) {
-        print l = file[i++]
-        if (l ~ op) break
-    }
-
-    if (debug) {
-        print "writing master block"
-    }
-
-    # Handle single stream format
-    if (file_format == 1) {
-        for (j = 1; j <= nex1; j++)                   # write new branch block
-            print newblk[j]
-
-        if (debug) {
-            print "writing stable block"
-        }
-
-        for (j = 1; j <= nex2; j++)                   # write updated branch block
-            print oldmaster[j]
-
-    # Handle multi-stream format
-    } else if (file_format == 0) {
-        # print the first block
-        for (j = 1; j <= nex3; j++)                   # write multi-stream block
-            print newblk[j]
-    }
-
-    if (debug) {
-        print "writing rest of the file"
-    }
-
-    while (be <= n) {                                 # write rest of the file
-        print file[be++]
-    }
-}