diff options
Diffstat (limited to '')
| -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 | 
