diff --git a/src/actions/git.sh b/src/actions/git.sh new file mode 100644 index 0000000..9a5dc4f --- /dev/null +++ b/src/actions/git.sh @@ -0,0 +1,32 @@ +# Register git action +dotify-register-action "git" + +# Git action. +dotify-action-git() { + local mode="$1" + ! local valid_mode="$(command -v "dotify-action-git-do-${mode}")" + + if [ -n "$valid_mode" ]; then + shift 1 + dotify-action-git-do-${mode} $@ + fi +} + +dotify-action-git-do-install() { + echo "git install: $@" +} + +dotify-action-git-do-uninstall() { + echo "git uninstall: $@" +} + +dotify-action-git-do-cleanup() { + echo "git cleanup: $@" +} + +dotify-action-git-post-run() { + if [ "$1" == "cleanup" ]; then + shift 1 + dotify-action-link-do-cleanup $@ + fi +} diff --git a/src/actions/link.sh b/src/actions/link.sh new file mode 100644 index 0000000..fe2f458 --- /dev/null +++ b/src/actions/link.sh @@ -0,0 +1,32 @@ +# Register link action. +dotify-register-action "link" + +# Link action. +dotify-action-link() { + local mode="$1" + ! local valid_mode="$(command -v "dotify-action-link-do-${mode}")" + + if [ -n "$valid_mode" ]; then + shift 1 + dotify-action-link-do-${mode} $@ + fi +} + +dotify-action-link-do-install() { + echo "link install: $@" +} + +dotify-action-link-do-uninstall() { + echo "link uninstall: $@" +} + +dotify-action-link-do-cleanup() { + echo "link cleanup: $@" +} + +dotify-action-link-post-run() { + if [ "$1" == "cleanup" ]; then + shift 1 + dotify-action-link-do-cleanup $@ + fi +} diff --git a/src/bin/dotify b/src/bin/dotify index 6564998..8f5de8b 100755 --- a/src/bin/dotify +++ b/src/bin/dotify @@ -45,7 +45,7 @@ source "../lib/internals/locate-dotfile.sh" source "../lib/internals/locate-target.sh" # -# Command functions +# Main functions # source "../lib/dotify-action.sh" @@ -54,15 +54,16 @@ source "../lib/dotify-compile.sh" source "../lib/dotify-help.sh" source "../lib/dotify-info.sh" source "../lib/dotify-install.sh" +source "../lib/dotify-register-action.sh" source "../lib/dotify-uninstall.sh" source "../lib/dotify-version.sh" # -# Built-in Plugins +# Built-in action plugins # -source "../plugins/link.sh" -source "../plugins/git.sh" +source "../actions/link.sh" +source "../actions/git.sh" # # Dotfile commands diff --git a/src/lib/dotify-register-action.sh b/src/lib/dotify-register-action.sh new file mode 100644 index 0000000..300eeae --- /dev/null +++ b/src/lib/dotify-register-action.sh @@ -0,0 +1,4 @@ +dotify-register-action() { + if [ -z "$DOTIFY_ACTIONS" ]; then DOTIFY_ACTIONS=(); fi + DOTIFY_ACTIONS+=("$1") +} diff --git a/src/plugins/git.sh b/src/plugins/git.sh deleted file mode 100644 index a4f24f9..0000000 --- a/src/plugins/git.sh +++ /dev/null @@ -1,15 +0,0 @@ -dotify-action-git() { - if [ "$DOTIFY_RUN_MODE" == "install" ]; then - dotify-action-git-install $@ - elif [ "$DOTIFY_RUN_MODE" == "uninstall" ]; then - dotify-action-git-uninstall $@ - fi -} - -dotify-action-git-install() { - echo "git install: $@" -} - -dotify-action-git-uninstall() { - echo "git uninstall: $@" -} diff --git a/src/plugins/link.sh b/src/plugins/link.sh deleted file mode 100644 index 243ff1d..0000000 --- a/src/plugins/link.sh +++ /dev/null @@ -1,15 +0,0 @@ -dotify-action-link() { - if [ "$DOTIFY_RUN_MODE" == "install" ]; then - dotify-action-link-install $@ - elif [ "$DOTIFY_RUN_MODE" == "uninstall" ]; then - dotify-action-link-uninstall $@ - fi -} - -dotify-action-link-install() { - echo "link install: $@" -} - -dotify-action-link-uninstall() { - echo "link uninstall: $@" -}