Add support for 'mvn' and 'ant'.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Mon, 19 Nov 2012 23:59:00 +0200
changeset 537 bb15ab8658ab
parent 536 acb751fa8eca
child 538 f57d4fb7d7c5
Add support for 'mvn' and 'ant'.
misc/mymake.sh
--- a/misc/mymake.sh	Mon Nov 19 20:14:06 2012 +0200
+++ b/misc/mymake.sh	Mon Nov 19 23:59:00 2012 +0200
@@ -1,28 +1,37 @@
 #!/bin/bash
 
+shopt -s extglob
+
 opt=
-for arg; do
-  case $opt in
-    f) fname="$arg" ;;
-  esac
-  opt=
-  case "$arg" in
-    -f) opt=f ;;
-  esac
+for (( i=2; i <= ${#@}; i++ )); do
+  if [[ ${@:$i-1:1} = -f ]]; then
+    fname=${@:$i:1}
+    break;
+  fi
 done
 
-if [[ -z "$fname" ]]; then
-  fname=Makefile
-fi
-
 dir="$PWD"
 while [[ -n "$dir" ]]; do
+  cd "$dir"
   if [[ -f "$dir"/"$fname" ]]; then
-    cd "$dir"
+    if [[ $fname == *[mM]ake* ]]; then
+      exec make "$@"
+    else
+      echo "Can't recognise '$fname' type."
+      exit 1
+    fi
+  fi
+  if [[ -f "$dir"/Makefile ]]; then
     exec make "$@"
   fi
+  if [[ -f "$dir"/build.xml ]]; then
+    exec ant -e "$@"
+  fi
+  if [[ -f "$dir"/pom.xml ]]; then
+    exec mvn "$@"
+  fi
   dir=${dir%/*}
 done
 
-echo "'""$fname""'" not found.
+echo "Doesn't found any build scripts."
 exit 1