Pass update() options through to link().
[dotfiles-framework.git] / dotfiles.sh
index 54ce7a324e3c79c12750dd56155ceb71bed1afd4..a1379a33d2d3859c6ce31f777d131e9f93e809c3 100755 (executable)
@@ -130,7 +130,7 @@ function list_files()
        done < <(cd "${DIR}" && find .)
 }
 
-# Global variable to allow passing associative arrats between functions
+# Global variable to allow passing associative arrays between functions
 
 if [ "${BASH_MAJOR}" -ge 4 ]; then
        declare -A REPO_SOURCE_DATA
@@ -643,7 +643,7 @@ function disconnect_help()
 function disconnect()
 {
        # multi-repo case handled in main() by run_on_all_repos()
-       REPO=$(nonempty_option 'link' 'REPO' "${1}") || return 1
+       REPO=$(nonempty_option 'disconnect' 'REPO' "${1}") || return 1
        maxargs 'disconnect' 1 "${@}" || return 1
        DOTFILES_SRC="${DOTFILES_DIR}/${REPO}/patched-src"
 
@@ -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,13 +717,21 @@ 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 'link' 'REPO' "${1}") || return 1
+       REPO=$(nonempty_option 'update' 'REPO' "${1}") || return 1
        maxargs 'disconnect' 1 "${@}" || return 1
 
        # Update once a week from our remote repository.  Mark updates by
@@ -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
 }