Skip to content

Commit 35a6adc

Browse files
committed
update: separate makefiles
Signed-off-by: Ali Mehraji <a.mehraji75@gmail.com>
1 parent 68320ec commit 35a6adc

29 files changed

Lines changed: 169 additions & 95 deletions

.config/make/dotfiles.mak

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
## —— dotfiles -------------------------------------------------------------------------------------
2+
3+
.PHONY: backup-dir
4+
backup-dir: ## Creates backup directory ins Users's Home
5+
@mkdir -p ~/.dotfiles.backup
6+
@echo "Created ~/.dotfiles.backup directory"
7+
8+
OH_MY_BASH_THEMES_DIR := .oh-my-bash/custom/themes
9+
OH_MY_BASH_COMPLETIONS_DIR := .oh-my-bash/custom/completions
10+
11+
# @rm -rf ~/.oh-my-bash | true
12+
# bash <(curl -fSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)
13+
.PHONY: oh-my-bash
14+
oh-my-bash: ## Install and Configure oh-my-bash, and links .bashrc
15+
@echo "## —— installing and configuring oh-my-bash --------------------------------------------------------"
16+
17+
@cp -r ~/${OH_MY_BASH_THEMES_DIR} ~/.dotfiles.backup/ &> /dev/null | true
18+
@rm -rf ~/${OH_MY_BASH_THEMES_DIR} &> /dev/null | true
19+
ln -fs ${DOTFILES_DIR_PATH}/${OH_MY_BASH_THEMES_DIR} ~/${OH_MY_BASH_THEMES_DIR}
20+
21+
@cp -r ~/${OH_MY_BASH_COMPLETIONS_DIR} ~/.dotfiles.backup/ &> /dev/null | true
22+
@rm -rf ~/${OH_MY_BASH_COMPLETIONS_DIR} &> /dev/null | true
23+
ln -fs ${DOTFILES_DIR_PATH}/${OH_MY_BASH_COMPLETIONS_DIR} ~/${OH_MY_BASH_COMPLETIONS_DIR}
24+
25+
@cp ~/.bashrc ~/.dotfiles.backup/ &> /dev/null | true
26+
@rm ~/.bashrc &> /dev/null | true
27+
ln -fs ${DOTFILES_DIR_PATH}/.bashrc ~/.bashrc
28+
29+
.PHONY: gnome-gtk
30+
gnome-gtk: ## Links gtk-3 and gtk-4 configs in ~/.config/gtk-3,4
31+
@echo "## —— Gnome GTK CSS and Configs --------------------------------------------------------------------"
32+
@cp -r ~/.config/gtk-3.0 ~/.dotfiles.backup/ &> /dev/null | true
33+
@rm -rf ~/.config/gtk-3.0 &> /dev/null | true
34+
ln -fs ${DOTFILES_DIR_PATH}/.config/gtk-3.0 ~/.config/gtk-3.0
35+
36+
@cp -r ~/.config/gtk-4.0 ~/.dotfiles.backup/ &> /dev/null | true
37+
@rm -rf ~/.config/gtk-4.0 &> /dev/null | true
38+
ln -fs ${DOTFILES_DIR_PATH}/.config/gtk-4.0 ~/.config/gtk-4.0
39+
40+
.PHONY: git-config
41+
git-config: ## Links .gitconfig to ~/.gitconfig
42+
@cp ~/.gitconfig ~/.dotfiles.backup/ &> /dev/null | true
43+
@rm ~/.gitconfig &> /dev/null | true
44+
ln -fs ${DOTFILES_DIR_PATH}/.gitconfig ~/.gitconfig
45+
46+
.PHONY: tmux
47+
tmux: ## Links .tmux.conf to ~/.tmux.conf
48+
@cp ~/.tmux.conf ~/.dotfiles.backup/ &> /dev/null | true
49+
@rm ~/.tmux.conf &> /dev/null | true
50+
ln -fs ${DOTFILES_DIR_PATH}/.tmux.conf ~/.tmux.conf
51+
52+
.PHONY: vim
53+
vim: ## Links .vimrc to ~/.vimrc and install vim plugins
54+
@cp ~/.vimrc ~/.dotfiles.backup &> /dev/null | true
55+
@rm ~/.vimrc &> /dev/null | true
56+
ln -fs ${DOTFILES_DIR_PATH}/.vimrc ~/.vimrc
57+
58+
@mkdir -p ~/.vim
59+
60+
@cp -r ~/.vim/colors ~/.dotfiles.backup/ &> /dev/null | true
61+
@rm -r ~/.vim/colors &> /dev/null | true
62+
ln -fs ${DOTFILES_DIR_PATH}/.vim/colors ~/.vim/colors
63+
64+
@cp -r ~/.vim/autoload ~/.dotfiles.backup/ &> /dev/null | true
65+
@rm -r ~/.vim/autoload &> /dev/null | true
66+
ln -fs ${DOTFILES_DIR_PATH}/.vim/autoload ~/.vim/autoload
67+
68+
ln -fs ${DOTFILES_DIR_PATH}/.vim/shell_header.temp ~/.vim/shell_header.temp
69+
70+
@rm -rf ~/.vim/bundle/Vundle.vim | true
71+
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
72+
vim +PluginInstall +qall
73+
74+
curl -fSLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
75+
vim +PlugInstall +qall

.config/make/help.mak

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## —— Help -----------------------------------------------------------------------------------------
2+
3+
.PHONY: help
4+
help: ## Shows This Help
5+
6+
@echo -e "$$HEADER"
7+
@grep -E '(^[a-zA-Z0-9_-]+:.*?## .*$$)|(^## )' $(MAKEFILE_LIST) | sed 's/^[^:]*://g' | awk 'BEGIN {FS = ":.*?## | #"} ; {printf "${cyan}%-30s${reset} ${white}%s${reset} ${green}%s${reset}\n", $$1, $$2, $$3}' | sed -e 's/\[36m##/\n[32m##/'

.config/make/vscode.mak

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
.PHONY: vscode-configs
2+
vscode-configs: # Links code user settings, and install vscode extensions
3+
# @cp ~/.config/Code/User/settings.json ~/.dotfiles.backup/vscode.settings.json &> /dev/null | true
4+
# @rm ~/.config/Code/User/settings.json &> /dev/null | true
5+
@mkdir -p ~/.config/Code/User
6+
ln -fs ${DOTFILES_DIR_PATH}/.config/Code/User/settings.json ~/.config/Code/User/settings.json
7+
8+
# code --install-extension davidanson.vscode-markdownlint
9+
# code --install-extension docker.docker
10+
# code --install-extension eamodio.gitlens
11+
# code --install-extension editorconfig.editorconfig
12+
# code --install-extension esbenp.prettier-vscode
13+
# code --install-extension gitlab.gitlab-workflow
14+
# code --install-extension golang.go
15+
# code --install-extension hashicorp.terraform
16+
# code --install-extension isudox.vscode-jetbrains-keybindings
17+
# code --install-extension lunuan.kubernetes-templates
18+
# code --install-extension ms-azuretools.vscode-containers
19+
# code --install-extension ms-kubernetes-tools.vscode-kubernetes-tools
20+
# code --install-extension ms-python.debugpy
21+
# code --install-extension ms-python.python
22+
# code --install-extension ms-python.vscode-pylance
23+
# code --install-extension ms-python.vscode-python-envs
24+
# code --install-extension ms-vscode.makefile-tools
25+
# code --install-extension redhat.ansible
26+
# code --install-extension redhat.vscode-yaml
27+
# code --install-extension streetsidesoftware.code-spell-checker
28+
# code --install-extension vscodevim.vim
29+
# code --install-extension yzhang.markdown-all-in-one
30+
# code --install-extension zhuangtongfa.material-theme

Makefile

Lines changed: 44 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,51 @@
11
# Makefile
2-
3-
SHELL := /bin/bash
4-
.DEFAULT_GOAL := dotfiles
5-
6-
.PHONY: minimal
7-
minimal: init ohmybash end
2+
.PHONY: all SHELL
3+
all: backup-dir dotfiles
4+
5+
.DEFAULT_GOAL := help
6+
.EXPORT_ALL_VARIABLES:
7+
MAKEFLAGS += "-j$(NUM_CORES) -l$(NUM_CORES)"
8+
SHELL:= /bin/bash
9+
.SHELLFLAGS = -eu -o pipefail -c
10+
11+
# Makefile colors config
12+
bold := $(shell tput bold)
13+
normal := $(shell tput sgr0)
14+
errorTitle := $(shell tput setab 1 && tput bold && echo '\n')
15+
recommendation := $(shell tput setab 4)
16+
underline := $(shell tput smul)
17+
reset := $(shell tput -Txterm sgr0)
18+
black := $(shell tput setaf 0)
19+
red := $(shell tput setaf 1)
20+
green := $(shell tput setaf 2)
21+
yellow := $(shell tput setaf 3)
22+
blue := $(shell tput setaf 4)
23+
magenta := $(shell tput setaf 5)
24+
cyan := $(shell tput setaf 6)
25+
white := $(shell tput setaf 7)
26+
27+
define HEADER
28+
How to use me:
29+
# To install and configure all targets
30+
${bold}make all${reset}
31+
32+
# To install and configure one target
33+
${bold}make ${cyan}<target>${reset}
34+
35+
endef
36+
export HEADER
37+
38+
-include $(addsuffix /*.mak, $(shell find .config/make -type d))
39+
40+
DOTFILES_DIR_PATH := ${PWD}/home
841

942
.PHONY: dotfiles
10-
dotfiles: init ohmybash vim git tmux gtk end
11-
12-
.PHONY: all
13-
all: dotfiles vscode
14-
15-
.PHONY: init
16-
init:
17-
@mkdir -p ~/.bak
18-
@echo "Created ~/.bak directory"
19-
20-
OH_MY_BASH_THEMES_DIR := .oh-my-bash/custom/themes
21-
OH_MY_BASH_COMPLETIONS_DIR := .oh-my-bash/custom/completions
22-
23-
.PHONY: ohmybash
24-
ohmybash:
25-
bash <(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)
26-
27-
@cp -r ~/${OH_MY_BASH_THEMES_DIR} ~/.bak/ &> /dev/null | true
28-
@rm -rf ~/${OH_MY_BASH_THEMES_DIR} &> /dev/null | true
29-
ln -s ${PWD}/${OH_MY_BASH_THEMES_DIR} ~/${OH_MY_BASH_THEMES_DIR}
30-
31-
@cp -r ~/${OH_MY_BASH_COMPLETIONS_DIR} ~/.bak/ &> /dev/null | true
32-
@rm -rf ~/${OH_MY_BASH_COMPLETIONS_DIR} &> /dev/null | true
33-
ln -s ${PWD}/${OH_MY_BASH_COMPLETIONS_DIR} ~/${OH_MY_BASH_COMPLETIONS_DIR}
34-
35-
@cp ~/.bashrc ~/.bak/ &> /dev/null | true
36-
@rm ~/.bashrc &> /dev/null | true
37-
ln -s ${PWD}/.bashrc ~/.bashrc
38-
39-
.PHONY: gtk
40-
gtk:
41-
@cp -r ~/.config/gtk-3.0 ~/.bak/ &> /dev/null | true
42-
@rm -rf ~/.config/gtk-3.0 &> /dev/null | true
43-
ln -s ${PWD}/.config/gtk-3.0 ~/.config/gtk-3.0
44-
45-
@cp -r ~/.config/gtk-4.0 ~/.bak/ &> /dev/null | true
46-
@rm -rf ~/.config/gtk-4.0 &> /dev/null | true
47-
ln -s ${PWD}/.config/gtk-4.0 ~/.config/gtk-4.0
48-
49-
50-
.PHONY: git
51-
git:
52-
@cp ~/.gitconfig ~/.bak/ &> /dev/null | true
53-
@rm ~/.gitconfig &> /dev/null | true
54-
ln -s ${PWD}/.gitconfig ~/.gitconfig
55-
56-
.PHONY: tmux
57-
tmux:
58-
@cp ~/.tmux.conf ~/.bak/ &> /dev/null | true
59-
@rm ~/.tmux.conf &> /dev/null | true
60-
ln -s ${PWD}/.tmux.conf ~/.tmux.conf
61-
62-
.PHONY: vim
63-
vim:
64-
@cp ~/.vimrc ~/.bak/ &> /dev/null | true
65-
@rm ~/.vimrc &> /dev/null | true
66-
ln -s ${PWD}/.vimrc ~/.vimrc
67-
68-
@mkdir -p ~/.vim
69-
70-
@cp -r ~/.vim/colors ~/.bak/ &> /dev/null | true
71-
@rm -r ~/.vim/colors &> /dev/null | true
72-
ln -s ${PWD}/.vim/colors ~/.vim/colors
73-
74-
@cp -r ~/.vim/autoload ~/.bak/ &> /dev/null | true
75-
@rm -r ~/.vim/autoload &> /dev/null | true
76-
ln -s ${PWD}/.vim/autoload ~/.vim/autoload
77-
78-
ln -sf ${PWD}/.vim/shell_header.temp ~/.vim/shell_header.temp
79-
80-
@rm -rf ~/.vim/bundle/Vundle.vim | true
81-
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
82-
vim +PluginInstall +qall
83-
84-
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
85-
vim +PlugInstall +qall
86-
43+
dotfiles: oh-my-bash \
44+
gnome-gtk git-config \
45+
tmux vim \
46+
vscode-configs end \
8747

8848

8949
.PHONY: end
9050
end:
91-
@echo "A copy of the previous dotfiles are available in the '~/.bak' folder."
51+
@echo "A copy of the previous dotfiles are available in the '~/.dotfiles.backup ' directory."

TODO.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# TODO
22

3-
- [ ] Separate Makefile to *.mak
3+
- [x] Separate Makefile to *.mak
44
- [ ] Update README.md
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)