#!/bin/bash
VERSION=`git describe --tags`
printf "Building for version $VERSION\n"
printf "Make sure versions match also in documentation and source code.\n"

printf "\nBuilding java class files\n"
printf "================================================\n"
javac -d build/jar src/cwts/networkanalysis/*.java src/cwts/networkanalysis/run/*.java src/cwts/util/*.java

printf "\nPackaging jar file\n"
printf "================================================\n"
jar cvfe dist/RunNetworkClustering.jar cwts.networkanalysis.run.RunNetworkClustering -C build/jar .

printf "\nPackaging source code\n"
printf "================================================\n"
find src -type f -iname "*.java" -print0 | tar -czvf dist/RunNetworkClustering-source.tar.gz --null -T -

printf "\nBuilding javadoc\n"
printf "================================================\n"
javadoc -noindex -d docs/ src/cwts/networkanalysis/*.java src/cwts/util/*.java
36:     * Default quality function.
41:     * Default resolution parameter.
61:     * Default randomness parameter.
76:    public static final String USAGE
82:          + "The file in <filename> is expected to contain a tab-separated edge list\n"
83:          + "(without a header line). Nodes are represented by zero-index integer numbers.\n"
88:          + "-q --quality-function {CPM|modularity} (default: CPM)\n"
89:          + "    Quality function to be optimized. Either the CPM (constant Potts model) or\n"
90:          + "    the modularity quality function can be used.\n"
91:          + "-r --resolution <resolution> (default: " + DEFAULT_RESOLUTION + ")\n"
92:          + "    Resolution parameter of the quality function.\n"
93:          + "-a --algorithm {Leiden|Louvain} (default: Leiden)\n"
94:          + "    Algorithm for optimizing the quality function. Either the Leiden or the\n"
96:          + "-s --random-starts <random starts> (default: " + DEFAULT_N_RANDOM_STARTS + ")\n"
98:          + "-i --iterations <iterations> (default: " + DEFAULT_N_ITERATIONS + ")\n"
100:          + "--randomness <randomness> (default: " + DEFAULT_RANDOMNESS + ")\n"
102:          + "--seed <seed> (default: random)\n"
107:          + "--sorted-edge-list\n"
111:          + "--input-clustering <filename> (default: singleton clustering)\n"
113:          + "    contain two tab-separated columns (without a header line), first a column of\n"
115:          + "    by zero-index integer numbers. If no file is specified, a singleton\n"
139:            System.err.print(USAGE);
144:        double resolution = DEFAULT_RESOLUTION;
148:        double randomness = DEFAULT_RANDOMNESS;
164:                if (arg.equals("-q") || arg.equals("--quality-function"))
171:                else if (arg.equals("-r") || arg.equals("--resolution"))
177:                        resolution = Double.parseDouble(args[argIndex + 1]);
178:                        if (resolution < 0)
187:                else if (arg.equals("-a") || arg.equals("--algorithm"))
194:                else if (arg.equals("-s") || arg.equals("--random-starts"))
