function parseArgs()

in tools/release-tools/setVersion.js [72:156]


function parseArgs() {
    if (process.argv.length < 2) {
        console.error("!!! Invalid number of arguments -- " + process.argv.length);
        return false;
    }

    let idx = 2;
    while(idx < process.argv.length) {
        let theArg = process.argv[idx];
        if (!newVer && theArg === "-patch") {
            console.log("Patch existing version");
            autoInc = "patch";
        } else if (!newVer && theArg === "-minor") {
            console.log("Increment minor existing version");
            autoInc = "minor";
        } else if (!newVer && theArg === "-major") {
            console.log("Increment major existing version");
            autoInc = "major";
        } else if (!isRelease && !preRel && theArg === "-dev") {
            if (!setPreRelVer("dev")) {
                return false;
            }
        } else if (!isRelease && !preRel && theArg === "-alpha") {
            if (!setPreRelVer("alpha")) {
                return false;
            }
        } else if (!isRelease && !preRel && theArg === "-beta") {
            if (!setPreRelVer("beta")) {
                return false;
            }
        } else if (!isRelease && !preRel && theArg === "-release") {
            isRelease = true;
            preRel = "";
        } else if (!isRelease && !preRel && theArg === "-pre") {
            if (!setPreRelVer(process.argv[idx + 1] || "pre")) {
                return false;
            }

            idx++;
        } else if (theArg === "-bld") {
            buildNum = (process.argv[idx + 1] || "");
            idx++;
        } else if (theArg === "-test") {
            testOnly = true;
        } else if (!isRelease && !newVer && !autoInc) {
            let theParts = theArg.split(".");
            if(theParts.length < 3) {
                console.error("!!! The provided version [" + theArg + "] appears invalid");
                return false;
            }

            newVer = theArg;
            updateAll = false;      // We have mixed versions so we can't update all of them if we have a version#
        } else if (!isReact && theArg === "-react") {
            isReact = true;
            updateAll = false;
        } else if (!isReactNative && theArg === "-reactNative") {
            isReactNative = true;
            updateAll = false;
        } else {
            console.error("!!! Invalid Argument [" + theArg + "] detected");
            return false;
        }

        idx ++;
    }

    if (buildNum && !preRel && !isRelease) {
        preRel = "dev";
    }

    // If no version, pre-release tag or auto version increment is defined default to "dev" pre-release
    if (!newVer && !autoInc && !isRelease) {
        const newPreRel = preRel;
        if (!setPreRelVer("dev")) {
            return false;
        }

        if (newPreRel) {
            preRel = newPreRel;
        }
    }

    return true;
}