diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -1,13 +1,15 @@ .POSIX: -update: +update: update-common update-private update-work + +update-common: +@for PKGDIR in *; do \ if test -d "$${PKGDIR}"; then \ PKG="$$(printf '%s@\n' "$${PKGDIR}" | cut -d @ -f 1)"; \ HOST="$$(printf '%s@\n' "$${PKGDIR}" | cut -d @ -f 2 | tr A-Z a-z)"; \ if test -z "$${HOST}" || test "$${HOST}" = "$$(hostname | tr A-Z a-z)"; then \ if ./check-installed "$${PKG}" 2>/dev/null; then \ - if ! ./check-installed "$$(readlink -- "$${PKG}")" 2>/dev/null; then \ + if ! ./check-installed "$$(readlink -- "$${PKGDIR}")" 2>/dev/null; then \ printf -- '\033[1mcd %s && %s install\033[m\n' "$${PKGDIR}" '$(MAKE)'; \ (cd -- "$${PKGDIR}" && $(MAKE) install); \ fi; \ @@ -18,9 +20,32 @@ update: fi; \ fi; \ done + +update-private: +if test -f .private/pkgs/Makefile || test -f .private/pkgs/makefile; then \ cd -- .private/pkgs && $(MAKE); \ fi + +update-work: +if test -f .work/pkgs/Makefile || test -f .work/pkgs/makefile; then \ cd -- .work/pkgs && $(MAKE); \ fi + +.DEFAULT: + +@for PKGDIR in $@; do \ + if test -d "$${PKGDIR}"; then \ + PKG="$$(printf '%s@\n' "$${PKGDIR}" | cut -d @ -f 1)"; \ + HOST="$$(printf '%s@\n' "$${PKGDIR}" | cut -d @ -f 2 | tr A-Z a-z)"; \ + if test -z "$${HOST}" || test "$${HOST}" = "$$(hostname | tr A-Z a-z)"; then \ + if ./check-installed "$${PKG}" 2>/dev/null; then \ + if ! ./check-installed "$$(readlink -- "$${PKGDIR}")" 2>/dev/null; then \ + printf -- '\033[1mcd %s && %s install\033[m\n' "$${PKGDIR}" '$(MAKE)'; \ + (cd -- "$${PKGDIR}" && $(MAKE) install); \ + fi; \ + else\ + printf -- '\033[1mcd %s && %s uninstall\033[m\n' "$${PKGDIR}" '$(MAKE)'; \ + (cd -- "$${PKGDIR}" && $(MAKE) uninstall || :); \ + fi; \ + fi; \ + fi; \ + done |