# -*- mode: makefile-gmake; -*-
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

include ../lib/shared.mk
ZSH_DIR :=  ~/.zsh
ZPLUG_DIR :=  ~/.zplug

install: | init update

init:
	$(info => Setting up zsh)
	$(MAKE) -C $(SRC) init_zplug
	$(mk_link) $(SRC) ~/.zsh
	$(mk_link) $(ZSH_DIR)/zshrc ~/.zshrc
	$(mk_link) $(ZSH_DIR)/zlogin ~/.zlogin
	$(mk_link) $(ZSH_DIR)/zprofile ~/.zprofile
	$(mk_link) $(ZSH_DIR)/zshenv ~/.zshenv
	$(mk_link) $(ZSH_DIR)/zlogout ~/.zlogout
	chmod 700 $(ZSH_DIR)/transient \
		; $(report) "updating transient permissions"

init_zplug:
	if [ ! -e $(ZPLUG_DIR) ] ; then
		export ZPLUG_HOME=$(ZPLUG_DIR)
		git clone https://github.com/zplug/zplug $(ZPLUG_DIR) \
			; $(report) "zplug installed"
	else
		$(report) debug "zplug already installed. Skipping"
	fi


update:
	if [ -e $(ZPLUG_DIR) ] ; then
		$(report) header "Updating zplug"
		source $(ZPLUG_DIR)/init.zsh
		source $(ZSH_DIR)/zplug
		export zplugs
		zplug install \
			; $(report) "zplug install"
		zplug update \
			; $(report) "zplug upate"
		zplug clean \
			; $(report) "zplug cleaned"
	else
		$(report) error "$(ZPLUG_DIR) doesn't exist... maybe run init first?"
	fi

remove:
	rm -rf $(ZPLUG_DIR) ; $(report) "deleting zplug dir"
	$(rm_link) ~/.zprofile
	$(rm_link) ~/.zlogin
	$(rm_link) ~/.zshrc
	$(rm_link) ~/.zsh
	$(rm_link) ~/.zshenv
	$(rm_link) ~/.zlogout