aboutsummaryrefslogtreecommitdiff
path: root/libexec/app-resolver-file
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/app-resolver-file')
-rwxr-xr-xlibexec/app-resolver-file94
1 files changed, 94 insertions, 0 deletions
diff --git a/libexec/app-resolver-file b/libexec/app-resolver-file
new file mode 100755
index 0000000..6282b83
--- /dev/null
+++ b/libexec/app-resolver-file
@@ -0,0 +1,94 @@
+#!/bin/bash
+
+set -e
+set -u
+
+APPSH_HOME=$(cd $(dirname "$0")/.. && pwd)
+
+. $APPSH_HOME/lib/common
+# HEADER END
+
+usage_text() {
+ echo "usage: $usage_app init <file>"
+ echo "usage: $usage_app resolve-version"
+ echo "usage: $usage_app download-version -v <version> -f <download target>"
+}
+
+init() {
+ while getopts "r:" opt
+ do
+ case $opt in
+ r)
+ app-conf set maven.repo "$OPTARG"
+ shift 2
+ OPTIND=1
+ ;;
+ *)
+ usage "Invalid option: $OPTARG"
+ ;;
+ esac
+ done
+
+ local file=${1-}
+
+ if [[ ! -r "$file" ]]
+ then
+ fatal "Can't read file: $file"
+ fi
+
+ app-conf set file.path "$file"
+}
+
+resolve_version() {
+ path=$(app-conf get file.path)
+
+ local s=$(stat -c %Z $path)
+
+ app-conf set app.version "$s"
+}
+
+download_version() {
+ target=""
+ while getopts "v:f:" opt
+ do
+ case $opt in
+ v)
+ # Ignored
+ ;;
+ f)
+ target="$OPTARG"
+ ;;
+ *)
+ usage "Invalid option: $OPTARG"
+ ;;
+ esac
+ done
+
+ if [[ $target == "" ]]
+ then
+ usage
+ fi
+
+ path=$(app-conf get file.path)
+
+ ln -s "$path" "$target"
+}
+
+command="$1"; shift
+
+case "$command" in
+ init)
+ init "$@"
+ ;;
+ resolve-version)
+ resolve_version
+ ;;
+ download-version)
+ download_version "$@"
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+exit 0