XDG_CONFIG_HOME=$(HOME)/.config
XDG_CACHE_HOME=$(HOME)/.cache
ZSH_CONFIG=$(XDG_CONFIG_HOME)/zsh
ZSH_CACHE=$(XDG_CACHE_HOME)/zsh
ZSH_LOCAL=$(HOME)/.local

update:
	git submodule foreach git pull

install: install-externals install-core

install-core:
	@echo "Core install tasks."
	@echo "Backing up your .zshrc iff neccessary..."
	@!(ls $(HOME)/.zshrc > /dev/null 2> /dev/null) || mv $(HOME)/.zshrc $(PWD)/zshrc.bak # Make backup of -zshrc if necessary
	@echo "Creating .zshrc in your home directory..."
	@ln -s $(PWD)/zshrc $(HOME)/.zshrc # update the link to .zshrc
	@echo "Creating directories..."
	@mkdir -p $(XDG_CONFIG_HOME)
	@mkdir -p $(ZSH_CACHE)
	@mkdir -p $(ZSH_LOCAL)/bin
	@mkdir -p $(ZSH_LOCAL)/share
	@echo "Creating zsh directory in your .config directory iff neccessary..."
	@(ls $(ZSH_CONFIG) > /dev/null 2> /dev/null) || ln -s $(PWD) $(ZSH_CONFIG) # Create zsh dir link if not existin
	@echo "Creating functions.d directory iff neccessary (for autocompletion files)..."
	@mkdir -p functions.d # folder for autocompletion files
	@echo "Creating autojump link"
	@(ls $(ZSH_LOCAL)/bin/autojump  > /dev/null 2> /dev/null) || ln -s $(PWD)/autojump/autojump $(ZSH_LOCAL)/bin/autojump
	@echo "Creating custom user files iff neccessary..."
	@touch private.zsh # create custom files for users
	@echo "DONE with core install tasks."

install-externals:
	git submodule update --init