aboutsummaryrefslogtreecommitdiff
path: root/src/main/groovy/frege/gradle/plugins/FregeJarFile.java
blob: eaf7d8f5f5cead9a0c3dabcba650431272da6f5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package frege.gradle.plugins;

import org.gradle.util.VersionNumber;

import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class FregeJarFile {
    private static final Pattern FILE_NAME_PATTERN = Pattern.compile("(frege(?:-all)?)-(\\d.*?)(-indy)?.jar");
    private final File file;
    private final Matcher matcher;
    private String version;

    private FregeJarFile(File file, Matcher matcher) {
        this.file = file;
        this.matcher = matcher;
    }


    public static FregeJarFile parse(File file) {
        Matcher matcher = FILE_NAME_PATTERN.matcher(file.getName());
        return matcher.matches() ? new FregeJarFile(file, matcher) : null;
    }

    public String getDependencyNotation() {
        return "org.frege-lang:frege:" + getVersion();

    }

    public VersionNumber getVersion() {
        return VersionNumber.parse(matcher.group(2));
    }
}