package kcauldron

import java.util.regex.Matcher

class VersionParser {
    public static String parseForgeVersion(File forgeFile, File propsFile) {
        def forgeVersion = forgeFile.text
        def int majorVersion = v(forgeVersion =~ /.+int majorVersion\s+=\s+(\d+);/)
        def int minorVersion = v(forgeVersion =~ /.+int minorVersion\s+=\s+(\d+);/)
        def int revisionVersion = v(forgeVersion =~ /.+int revisionVersion\s+=\s+(\d+);/)
        def int buildVersion = parseForgeRevision propsFile
        return "${majorVersion}.${minorVersion}.${revisionVersion}.${buildVersion}"
    }

    def static int parseForgeRevision(File propsFile) {
        def props = new Properties();
        propsFile.withInputStream { props.load(it) }
        props['fmlbuild.build.number'] as int
    }


    static int v(Matcher matcher) {
        matcher.find()
        matcher.group(1) as int
    }
}
