catchup with lots of updates
[buildscripts] / mu4e
diff --git a/mu4e b/mu4e
new file mode 100755 (executable)
index 0000000..b87990c
--- /dev/null
+++ b/mu4e
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+if [[ -s ~/.bashrc ]];then . ~/.bashrc;fi
+
+
+cd /a/opt/mu
+
+recompile=false
+dryrun=false
+
+while [[ $1 == -* ]]; do
+  case $1 in
+    -n) dryrun=true ;;
+    -r) recompile=true ;;
+    --no-r) recompile=false ;;
+    --) break ;;
+    *) echo "$0: error: bad arg: $1" >&2; exit 1 ;;
+  esac
+  shift
+done
+
+bootstrap=false
+
+#git repo
+dir=/a/opt/mu-$(distro-name)$(distro-num)
+last_build=$dir/iank-mu-build
+
+if [[ -e $dir ]]; then
+  m cd $dir
+  rev=$(cat $last_build 2>/dev/null) ||:
+  head=$(git rev-parse HEAD)
+  if ! $recompile && ! $bootstrap && [[ $rev == "$head" ]]; then
+    echo "already compiled, exiting"
+    exit 0
+  fi
+  echo rev=$rev head=$head
+  if [[ $rev != "$head" ]]; then
+    bootstrap=true
+  fi
+else
+  head=$(git rev-parse HEAD)
+  bootstrap=true
+fi
+
+if $dryrun; then
+  e recompile=$recompile bootstrap=$bootstrap
+  exit 0
+fi
+
+if $bootstrap; then
+  m rsync --delete -ra /a/opt/mu/ $dir
+  recompile=true
+  cd $dir
+fi
+
+
+if [[ $(debian-codename) == flidas ]]; then
+  # use the flidas branch, stuck behind because
+  # needs newer crypt libraries that are too troublesome.
+  cd /a/opt/muflidas
+else
+  # libgmime-3.0-dev is a newer version than build-dep installs for buster
+  # note, currently, need newer meson than t10
+  m pi libgmime-3.0-dev meson
+fi
+if $recompile; then
+  m git clean -xfffd
+  m ./autogen.sh && make -j`nproc`
+  # note uninstall is implemented
+  m sudo make install
+else
+  # Workaround for some indecipherable build error
+  # that only happens after syncing the mu dir and not building from
+  # scratch. It seems there is some state somewhere, like ~/.local
+  # that doesn't get copied. Found the workaround by reading the Makefile,
+  # then doing a more verbose build with:
+  # ninja -C $PWD/build -v -d explain
+  sudo touch -d @$(($(stat -c%Y build/build.ninja) - 100)) /usr/local/bin/emacs
+  m sudo make install
+fi
+echo $head >$last_build