#!/bin/zsh dry="0" execute() { log "execute $@" if [[ $dry != "1" ]]; then "$@" fi } log() { if [[ $dry != "1" ]]; then echo "$@" else echo "[DRY RUN]: $@" fi } while [[ $# > 0 ]]; do if [[ $1 == "--dry" ]]; then dry="1" fi shift done log "---------------- dotfiles ----------------" copy_dir() { from=$1 to=$2 pushd $from > /dev/null dirs=(`find . -mindepth 1 -maxdepth 1 -type d`) echo $dirs for dir in $dirs; do if [[ -d $to/$dir ]]; then execute rm -rf $to/$dir fi execute cp -rp $dir $to/$dir done popd > /dev/null } copy_file() { from=$1 to=$2 filename=$(basename $from) if [[ -e $to/$filename ]]; then execute rm $to/$filename fi execute cp -p $from $to/$filename } copy_dir .config $HOME/.config # copy_file .zxcv $HOME