/
build-source-jar
executable file
·35 lines (29 loc) · 1.51 KB
/
build-source-jar
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
35
#!/usr/bin/env bash
function main() {
local source_dir=$1
[[ -z ${source_dir} ]] && { echo "specify the directory into which the GitHub Gradle source ZIP was expanded" 1>&2; exit 1; }
[[ -d ${source_dir} ]] || { echo "not a directory: ${source_dir}" 1>&2; exit 1; }
[[ -f ${source_dir}/version.txt ]] || { echo "${source_dir} does not seem to be a Gradle source directory, version.txt is missing" 1>&2; exit 1; }
[[ -d ${source_dir}/subprojects ]] || { echo "${source_dir} does not seem to be a Gradle source directory, subprojects subdirectory is missing" 1>&2; exit 1; }
local first=true
local target_file=${source_dir}/gradle-$(cat ${source_dir}/version.txt)-sources.jar
local skipped_dirs
for d in $(find ${source_dir}/subprojects -type d -mindepth 1 -maxdepth 1); do
local parent=$(dirname ${d})
local dir=$(basename ${d})
local src_dir=${d}/src/main/java
if [[ ! -d ${src_dir} ]]; then
# echo "[warning]: ${dir} does not have a src/main/java subdirectory" 1>&2
[[ -z ${skipped_dirs} ]] && skipped_dirs=${dir} || skipped_dirs="${skipped_dirs} ${dir}"
else
if ${first}; then
first=false
jar cf ${target_file} -C ${src_dir} . && echo "${dir} added to ${target_file}" || echo "[warning]: JAR failed for ${src_dir}" 1>&2
else
jar uf ${target_file} -C ${src_dir} . && echo "${dir} added to ${target_file}" || echo "[warning]: JAR failed for ${src_dir}" 1>&2
fi
fi
done
echo "done"
}
main "$@"