MSG=@
IGNORE_DOT_FILES=. .. .git .gitmodules .gitignore .config
DOT_FILES=$(filter-out $(IGNORE_DOT_FILES), $(wildcard .*) .ssh/config $(wildcard .config/*))
DOT_INSTALLED=$(foreach dot, $(DOT_FILES), $(HOME)/$(dot))
ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

PKG_ARCH_BASE=aspell-en aspell-fr conky cscope ctags dunst eog firefox noto-fonts-emoji fzf git gmrun gnome-terminal genius gvim hunspell-fr hyphen-en hyphen-fr lightdm numlockx openssh polkit-gnome python3 sudo tint2 tmux unrar unzip udevil zsh xclip openbox obconf
PKG_ARCH_DEV=autopep8 bear cppcheck clang flake8 gcc hstr shellcheck strace gitk tig

PKG_UBUNTU_BASE=aspell-en aspell-fr conky cscope exuberant-ctags dunst eog firefox git gmrun gnome-terminal genius vim-gtk3 hunspell-fr hyphen-fr lightdm numlockx python3 sudo tint2 tmux unrar unzip udevil zsh openbox obconf

PKG_UBUNTU_DEV=bear cppcheck clang flake8 gcc shellcheck strace gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig clangd-10 clang-tools gitk tig android-sdk-platform-tools-common cmake-curses-gui git-lfs

ifeq ($(USER), root)
$(info Should not be run as root)
$(info Put youself in wheel group and add \"%wheel ALL=(ALL) NOPASSWD: ALL\" to /etc/sudoers)
$(error Should not be run as root)
endif

all: conf

conf:$(DOT_INSTALLED)
	git submodule update --init

%_all: conf %_install_base %_install_dev
	vim -c :PluginInstall -c :xa

$(HOME)/%: $(ROOT_DIR)/%
	$(MSG)echo "installing $@"
	$(MSG)ln -s $< $@

.ONESHELL:
/usr/bin/yay:
	sudo pacman -Sy --needed git base-devel
	git clone https://aur.archlinux.org/yay.git
	cd yay && makepkg -s -i
	cd ..
	rm -rf yay

ubuntu_install_base:
	$(info going to install $(PKG_UBUNTU_BASE))
	sudo apt install -y $(PKG_UBUNTU_BASE)

ubuntu_install_dev:
	$(info going to install $(PKG_UBUNTU_DEV))
	sudo apt install -y $(PKG_UBUNTU_DEV)

arch_install_base: /usr/bin/yay
	$(info going to install $(PKG_ARCH_BASE))
	yay -Sy --needed  $(PKG_ARCH_BASE)

arch_install_dev: /usr/bin/yay
	$(info going to install $(PKG_ARCH_DEV))
	yay -Sy --needed  $(PKG_ARCH_DEV)


udevil_install: arch_install_base
ifneq (,$(wildcard /etc/systemd/system/multi-user.target.wants/devmon@$(USER).service))
	$(MSG)echo "udevil already installed"
else
	sudo systemctl enable devmon@$(USER)
	sudo systemctl start devmon@$(USER)
endif
