Have the install command uninstall first
The new uninstall functionality tries to remove any "orphan" files. Files that were installed during the last install, but will not be installed this time (because of removal, not necessity).
This commit is contained in:
parent
9ab70194a6
commit
d8aa1d0ed1
41 changed files with 60 additions and 44 deletions
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.config
|
SUBDIR=.config
|
||||||
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
|
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
|
||||||
newsbeuter zathura
|
newsbeuter zathura
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/awesome
|
SUBDIR=awesome
|
||||||
modules=themes
|
modules=themes
|
||||||
objects=bowl.lua ext.lua infoline.lua keychain.lua oni.lua rc.lua
|
objects=bowl.lua ext.lua infoline.lua keychain.lua oni.lua rc.lua
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/themes
|
SUBDIR=themes
|
||||||
modules=custom
|
modules=custom
|
||||||
|
|
||||||
include ../../../dotfiles.mk
|
include ../../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/custom
|
SUBDIR=custom
|
||||||
objects=theme.lua
|
objects=theme.lua
|
||||||
|
|
||||||
include ../../../../dotfiles.mk
|
include ../../../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/clfswm
|
SUBDIR=clfswm
|
||||||
objects=clfswmrc
|
objects=clfswmrc
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/cower
|
SUBDIR=cower
|
||||||
objects=config
|
objects=config
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/dunst
|
SUBDIR=dunst
|
||||||
objects=dunstrc
|
objects=dunstrc
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/fehlstart
|
SUBDIR=fehlstart
|
||||||
objects=fehlstart.rc
|
objects=fehlstart.rc
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/fish
|
SUBDIR=fish
|
||||||
objects=config.fish
|
objects=config.fish
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/herbstluftwm
|
SUBDIR=herbstluftwm
|
||||||
objects=autostart panel.sh
|
objects=autostart panel.sh
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/newsbeuter
|
SUBDIR=newsbeuter
|
||||||
objects=config urls
|
objects=config urls
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/zathura
|
SUBDIR=zathura
|
||||||
objects=zathurarc
|
objects=zathurarc
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.conkerorrc
|
SUBDIR=.conkerorrc
|
||||||
modules=themes styles
|
modules=themes styles
|
||||||
objects=gtk2rc init.js ext_restore.js
|
objects=gtk2rc init.js ext_restore.js
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/styles
|
SUBDIR=styles
|
||||||
objects=github.css help.css git-scm.css
|
objects=github.css help.css git-scm.css
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/themes
|
SUBDIR=themes
|
||||||
modules=naquadah yoshi
|
modules=naquadah yoshi
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/naquadah
|
SUBDIR=naquadah
|
||||||
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
|
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
|
||||||
mode-line.css new-tabs.css tab-bar.css theme.json
|
mode-line.css new-tabs.css tab-bar.css theme.json
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/yoshi
|
SUBDIR=yoshi
|
||||||
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
|
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
|
||||||
mode-line.css new-tabs.css tab-bar.css theme.json
|
mode-line.css new-tabs.css tab-bar.css theme.json
|
||||||
|
|
||||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -0,0 +1 @@
|
||||||
|
Makefile.old
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.local
|
SUBDIR=.local
|
||||||
modules=share
|
modules=share
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/share
|
SUBDIR=share
|
||||||
modules=applications
|
modules=applications
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/applications
|
SUBDIR=applications
|
||||||
objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
|
objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
|
||||||
|
|
||||||
include ../../../dotfiles.mk
|
include ../../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.moc
|
SUBDIR=.moc
|
||||||
modules=themes
|
modules=themes
|
||||||
objects=config
|
objects=config
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/themes
|
SUBDIR=themes
|
||||||
objects=custom
|
objects=custom
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.mutt
|
SUBDIR=.mutt
|
||||||
objects=aethon.muttrc arch.muttrc colors.muttrc gmail.muttrc \
|
objects=aethon.muttrc arch.muttrc colors.muttrc gmail.muttrc \
|
||||||
iactor.muttrc macros mailcap muttrc ninthfloor.muttrc \
|
iactor.muttrc macros mailcap muttrc ninthfloor.muttrc \
|
||||||
ryuslash.org.muttrc sig
|
ryuslash.org.muttrc sig
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.ncmpcpp
|
SUBDIR=.ncmpcpp
|
||||||
objects=config
|
objects=config
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.pentadactyl
|
SUBDIR=.pentadactyl
|
||||||
modules=plugins
|
modules=plugins
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/plugins
|
SUBDIR=plugins
|
||||||
objects=emacs.penta
|
objects=emacs.penta
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.sawfish
|
SUBDIR=.sawfish
|
||||||
objects=rc
|
objects=rc
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.ssh
|
SUBDIR=.ssh
|
||||||
objects=config
|
objects=config
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.w3m
|
SUBDIR=.w3m
|
||||||
objects=config
|
objects=config
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.weechat
|
SUBDIR=.weechat
|
||||||
objects=alias.conf irc.conf weechat.conf
|
objects=alias.conf irc.conf weechat.conf
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.zsh
|
SUBDIR=.zsh
|
||||||
modules=functions
|
modules=functions
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/functions
|
SUBDIR=functions
|
||||||
objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
|
objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
|
||||||
precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
|
precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
|
||||||
preexec_update_vars prompt prompt_git_info rprompt \
|
preexec_update_vars prompt prompt_git_info rprompt \
|
||||||
|
|
25
dotfiles.mk
25
dotfiles.mk
|
@ -34,9 +34,23 @@ all: $(modules) $(objects)
|
||||||
|
|
||||||
ifeq ($(MAKEROOT),y)
|
ifeq ($(MAKEROOT),y)
|
||||||
check: $(check-modules) $(check-objects)
|
check: $(check-modules) $(check-objects)
|
||||||
install: $(install-modules) $(install-objects)
|
install: uninstall $(install-modules) $(install-objects) Makefile.old
|
||||||
reverse: $(reverse-modules) $(reverse-objects)
|
reverse: $(reverse-modules) $(reverse-objects)
|
||||||
|
ifeq ($(firstword $(MAKEFILE_LIST)),Makefile.old)
|
||||||
uninstall: $(uninstall-modules) $(uninstall-objects)
|
uninstall: $(uninstall-modules) $(uninstall-objects)
|
||||||
|
@rmdir --ignore-fail-on-non-empty $(DESTDIR) 2> /dev/null || true
|
||||||
|
else
|
||||||
|
uninstall: export NEWLIST = $(objects)
|
||||||
|
uninstall:
|
||||||
|
@$(MAKE) -s -f Makefile.old uninstall
|
||||||
|
|
||||||
|
Makefile.old: $(firstword $(MAKEFILE_LIST))
|
||||||
|
@cp "$^" "$@"
|
||||||
|
|
||||||
|
ifdef SUBDIR
|
||||||
|
DESTDIR:=$(DESTDIR)/$(SUBDIR)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
check:
|
check:
|
||||||
@$(MAKE) -s -C ../ check
|
@$(MAKE) -s -C ../ check
|
||||||
|
@ -71,10 +85,11 @@ $(reverse-modules): reverse-%:
|
||||||
@$(MAKE) -s -C $* reverse MKDPREFIX=$(MKDPREFIX)$*/
|
@$(MAKE) -s -C $* reverse MKDPREFIX=$(MKDPREFIX)$*/
|
||||||
|
|
||||||
$(uninstall-objects): uninstall-%:
|
$(uninstall-objects): uninstall-%:
|
||||||
@$(if $(call older,$*), \
|
@$(if $(findstring $*,$(NEWLIST)),, \
|
||||||
echo -e "$(FG_RED)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
|
@$(if $(call older,$*), \
|
||||||
echo -e "$(FG_GRE)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \
|
echo -e "$(FG_RED)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
|
||||||
rm -f "$(DESTDIR)/$*")
|
echo -e "$(FG_GRE)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \
|
||||||
|
unlink "$(DESTDIR)/$*" || true))
|
||||||
|
|
||||||
$(uninstall-modules): uninstall-%:
|
$(uninstall-modules): uninstall-%:
|
||||||
@$(MAKE) -C $* uninstall MKDPREFIX=$(MKDPREFIX)$*/
|
@$(MAKE) -C $* uninstall MKDPREFIX=$(MKDPREFIX)$*/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.emacs.d
|
SUBDIR=.emacs.d
|
||||||
objects=init.elc init.el gnus.elc gnus.el
|
objects=init.elc init.el gnus.elc gnus.el
|
||||||
modules=eshell site-lisp snippets
|
modules=eshell site-lisp snippets
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/eshell
|
SUBDIR=eshell
|
||||||
objects=alias
|
objects=alias
|
||||||
modules=
|
modules=
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/site-lisp
|
SUBDIR=site-lisp
|
||||||
objects=dzen.elc dzen.el eltuki.elc eltuki.el ext.elc ext.el \
|
objects=dzen.elc dzen.el eltuki.elc eltuki.el ext.elc ext.el \
|
||||||
metalexpress.elc metalexpress.el mu4e-init.elc mu4e-init.el \
|
metalexpress.elc metalexpress.el mu4e-init.elc mu4e-init.el \
|
||||||
oni.elc oni.el org-init.elc org-init.el quick-edit-mode.elc \
|
oni.elc oni.el org-init.elc org-init.el quick-edit-mode.elc \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/snippets
|
SUBDIR=snippets
|
||||||
modules=html-mode org-mode python-mode
|
modules=html-mode org-mode python-mode
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/html-mode
|
SUBDIR=html-mode
|
||||||
objects=for generic-block
|
objects=for generic-block
|
||||||
|
|
||||||
include ../../../dotfiles.mk
|
include ../../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/org-mode
|
SUBDIR=org-mode
|
||||||
objects=codeblock heading project snippet
|
objects=codeblock heading project snippet
|
||||||
|
|
||||||
include ../../../dotfiles.mk
|
include ../../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/python-mode
|
SUBDIR=python-mode
|
||||||
objects=defm_empty form form_valid import_from permission_guard url
|
objects=defm_empty form form_valid import_from permission_guard url
|
||||||
|
|
||||||
include ../../../dotfiles.mk
|
include ../../../dotfiles.mk
|
||||||
|
|
Loading…
Reference in a new issue