dotfiles/Makefile

252 lines
7.5 KiB
Makefile

# =======================
# = STOW COMMANDS =
# =======================
STOW_INSTALL = stow -t ~ -S
STOW_REMOVE = stow -t ~ -D
# =============================
# = PER-PACKAGE INSTALL =
# =============================
bash-install:
$(STOW_INSTALL) bash
burrow-install:
$(STOW_INSTALL) burrow
cron-pubnix-install:
cat ~/dotfiles/cron/pubnix-cron >> ~/dotfiles/my-cron
cron-auto-update-install:
cat ~/dotfiles/cron/auto-update-cron >> ~/dotfiles/my-cron
cron-install:
if [ -e ~/dotfiles/my-cron ] ; then crontab ~/dotfiles/my-cron ; fi
gimp-install:
$(STOW_INSTALL) gimp
git-install:
$(STOW_INSTALL) git
gnupg-install:
$(STOW_INSTALL) gnupg
mixxx-install:
$(STOW_INSTALL) mixxx
oh-my-zsh-install: git-install
git clone https://github.com/robbyrussell/oh-my-zsh ~/.oh-my-zsh
git clone https://github.com/denysdovhan/spaceship-prompt.git ~/.oh-my-zsh/custom/themes/spaceship-prompt
ln -s ~/.oh-my-zsh/custom/themes/spaceship-prompt/spaceship.zsh-theme ~/.oh-my-zsh/custom/themes/spaceship.zsh-theme
pavucontrol-install:
$(STOW_INSTALL) pavucontrol
smplayer-install:
$(STOW_INSTALL) smplayer
ssh-install:
$(STOW_INSTALL) ssh
thunar-install:
$(STOW_INSTALL) thunar
tmux-install:
$(STOW_INSTALL) tmux
vim-install:
$(STOW_INSTALL) vim
vlc-install:
$(STOW_INSTALL) vlc
weechat-install:
$(STOW_INSTALL) weechat
xarchiver-install:
$(STOW_INSTALL) xarchiver
xfce4-install:
$(STOW_INSTALL) xfce4
youtube-dl-install:
$(STOW_INSTALL) youtube-dl
zsh-install:
$(STOW_INSTALL) zsh
# ============================
# = PER-PACKAGE REMOVE =
# ============================
bash-remove:
$(STOW_REMOVE) bash
burrow-remove:
$(STOW_REMOVE) burrow
gimp-remove:
$(STOW_REMOVE) gimp
git-remove:
$(STOW_REMOVE) git
gnupg-remove:
$(STOW_REMOVE) gnupg
LICENSE-remove:
$(STOW_REMOVE) LICENSE
Makefile-remove:
$(STOW_REMOVE) Makefile
mixxx-remove:
$(STOW_REMOVE) mixxx
oh-my-zsh-remove:
rm -rf ~/.oh-my-zsh
pavucontrol-remove:
$(STOW_REMOVE) pavucontrol
smplayer-remove:
$(STOW_REMOVE) smplayer
ssh-remove:
$(STOW_REMOVE) ssh
thunar-remove:
$(STOW_REMOVE) thunar
tmux-remove:
$(STOW_REMOVE) tmux
vim-remove:
$(STOW_REMOVE) vim
vlc-remove:
$(STOW_REMOVE) vlc
weechat-remove:
$(STOW_REMOVE) weechat
xarchiver-remove:
$(STOW_REMOVE) xarchiver
xfce4-remove:
$(STOW_REMOVE) xfce4
youtube-dl-remove:
$(STOW_REMOVE) youtube-dl
zsh-remove: oh-my-zsh-remove
$(STOW_REMOVE) zsh
# =======================
# = INSTALL TYPES =
# =======================
install-all: bash-install burrow-install gimp-install git-install gnupg-install mixxx-install oh-my-zsh-install pavucontrol-install smplayer-install ssh-install thunar-install tmux-install vim-install vlc-install weechat-install xarchiver-install xfce4-install youtube-dl-install zsh-install
install-base: bash-install oh-my-zsh-install ssh-install tmux-install vim-install zsh-install
install-home: install-base burrow-install gimp-install git-install gnupg-install pavucontrol-install thunar-install vlc-install xarchiver-install youtube-dl-install
install-server: install-base bash-install git-install
install-pubnix: install-base burrow-install git-install gnupg-install cron-pubnix-install
install-weechat: install-base gnupg-install weechat-install
install-team: install-pubnix youtube-dl-install
install-aussie: install-pubnix install-weechat youtube-dl-install
install-streaming: install-base mixxx-install vlc-install youtube-dl-install
# =================
# = GENERAL =
# =================
remove: bash-remove burrow-remove gimp-remove git-remove gnupg-remove mixxx-remove oh-my-zsh-remove pavucontrol-remove smplayer-remove ssh-remove thunar-remove tmux-remove vim-remove vlc-remove weechat-remove xarchiver-remove xfce4-remove youtube-dl-remove zsh-remove
all: help
install:
@printf "Please choose an install type:\\n"
@printf " - install-all: install everything\\n"
@printf " - install-base: just install base everyday use packages\\n"
@printf " - install-home: install stuff that i use on\\n"
@printf " home machines + base\\n"
@printf " - install-pubnix: install stuff that i use on pubnixes + base\\n"
@printf " - install-team: install stuff i specifically use on\\n"
@printf " ~team + pubnix\\n"
@printf " - install-weechat: install stuff needed for weechat + base\\n"
@printf " - install-streaming: install stuff for streaming + base\\n"
@printf " (rarely used)\\n"
help:
@printf "==========================\\n"
@printf "= GENERAL COMMANDS =\\n"
@printf "==========================\\n"
@printf "\\n"
@printf "install: shows help for install types\\n"
@printf "remove: removes dotfiles from system\\n"
@printf "all (plain make with no arguments): link to 'help'\\n"
@printf "\\n"
@printf "=======================\\n"
@printf "= INSTALL TYPES =\\n"
@printf "=======================\\n"
@printf "\\n"
@printf "Install types:\\n"
@printf " - install-all: install everything\\n"
@printf " - install-base: just install base everyday use packages\\n"
@printf " - install-home: install stuff that i use on\\n"
@printf " home machines + base\\n"
@printf " - install-pubnix: install stuff that i use on pubnixes + base\\n"
@printf " - install-team: install stuff i specifically use on\\n"
@printf " ~team + pubnix\\n"
@printf " - install-weechat: install stuff needed for weechat + base\\n"
@printf " - install-streaming: install stuff for streaming + base\\n"
@printf " (rarely used)\\n"
@printf "\\n"
@printf "=============================\\n"
@printf "= PER-PACKAGE TARGETS =\\n"
@printf "=============================\\n"
@printf "\\n"
@printf "Each package has a per-package target for install and remove.\\n"
@printf "These targets allow cherry-picking for adding and\\n"
@printf "removing dotfiles. These are most useful when:\\n"
@printf " install) adding a new package after install, however this can\\n"
@printf " normally be done by running the same target you\\n"
@printf " remove) deciding a package is no longer needed. if a package\\n"
@printf " is removed from its install target, re-running the\\n"
@printf " install target with not remove it, this must be done\\n"
@printf " manually.\\n"
@printf "\\n"
@printf "===================\\n"
@printf "= LICENSING =\\n"
@printf "===================\\n"
@printf "\\n"
@printf "Copyright (c) 2018 fosslinux\\n"
@printf "\\n"
@printf "Permission is hereby granted, free of charge, to any person obtaining a copy\\n"
@printf "of this software and associated documentation files (the "Software"), to deal\\n"
@printf "in the Software without restriction, including without limitation the rights\\n"
@printf "to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\n"
@printf "copies of the Software, and to permit persons to whom the Software is\\n"
@printf "furnished to do so, subject to the following conditions:\\n"
@printf "\\n"
@printf "The above copyright notice and this permission notice shall be included in all\\n"
@printf "copies or substantial portions of the Software.\\n"
@printf "\\n"
@printf "THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\n"
@printf "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\n"
@printf "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\n"
@printf "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\n"
@printf "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\n"
@printf "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\n"
@printf "SOFTWARE.\\n"