Pass update() options through to link().
authorW. Trevor King <wking@tremily.us>
Thu, 27 Sep 2012 13:17:11 +0000 (09:17 -0400)
committerW. Trevor King <wking@tremily.us>
Thu, 27 Sep 2012 13:23:46 +0000 (09:23 -0400)
This makes it easy to customize linking behavior while still using
update() and its fetch-avoidance.

dotfiles.sh

index e797d7fc0938c97b05463f9eccce40dfa853c79a..a1379a33d2d3859c6ce31f777d131e9f93e809c3 100755 (executable)
@@ -708,7 +708,7 @@ function update_help()
 
        cat <<-EOF
 
-               usage: $0 ${COMMAND} [REPO]
+               usage: $0 ${COMMAND} [options] [REPO]
 
                Where 'REPO' is the name the dotfiles repository to update.
                If it is not given, all repositories will be updateed.
@@ -717,11 +717,19 @@ function update_help()
                to bring them in sync with the central repositories.  Keeps track
                of the last update time to avoid multiple fetches in the same
                week.
+
+               ${COMMAND} passes any options it receives through to the link
+               command.
        EOF
 }
 
 function update()
 {
+       LINK_OPTS=''
+       while [ "${1::2}" = '--' ]; do
+               LINK_OPTS="${LINK_FN_OPTS} ${1}"
+               shift
+       done
        # multi-repo case handled in main() by run_on_all_repos()
        REPO=$(nonempty_option 'update' 'REPO' "${1}") || return 1
        maxargs 'disconnect' 1 "${@}" || return 1
@@ -736,7 +744,7 @@ function update()
                "${TOUCH}" "${UPDATE_FILE}" || return 1
                fetch "${REPO}" || return 1
                patch "${REPO}" || return 1
-               link "${REPO}" || return 1
+               link ${LINK_OPTS} "${REPO}" || return 1
                echo "${REPO} dotfiles updated"
        fi
 }