44 lines
		
	
	
		
			820 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			820 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/zsh
 | 
						|
 | 
						|
dry="0"
 | 
						|
 | 
						|
execute() {
 | 
						|
    log "execute $@"
 | 
						|
    [[ $dry != "1" ]] && "$@"
 | 
						|
}
 | 
						|
 | 
						|
log() {
 | 
						|
    [[ $dry != "1" ]] && echo "$@" || echo "[DRY RUN]: $@"
 | 
						|
}
 | 
						|
 | 
						|
while [[ $# > 0 ]]; do
 | 
						|
    [[ $1 == "--dry" ]] && dry="1"
 | 
						|
    shift
 | 
						|
done
 | 
						|
 | 
						|
log "---------------- dotfiles ----------------"
 | 
						|
 | 
						|
copy_dir() {
 | 
						|
    from=$1
 | 
						|
    to=$2
 | 
						|
    pushd $from > /dev/null
 | 
						|
    dirs=(`find . -mindepth 1 -maxdepth 1 -type d`)
 | 
						|
    for dir in $dirs; do
 | 
						|
        [[ -d $to/$dir ]] && execute rm -rf $to/$dir
 | 
						|
        execute cp -rp $dir $to/$dir
 | 
						|
    done
 | 
						|
    popd > /dev/null
 | 
						|
}
 | 
						|
 | 
						|
copy_file() {
 | 
						|
    from=$1
 | 
						|
    to=$2
 | 
						|
    filename=$(basename $from)
 | 
						|
    [[ -e $to/$filename ]] && execute rm $to/$filename
 | 
						|
    execute cp -p $from $to/$filename
 | 
						|
}
 | 
						|
 | 
						|
copy_dir src_files/.config $HOME/.config
 | 
						|
copy_dir src_files/.local $HOME/.local
 | 
						|
copy_file src_files/.zshrc $HOME
 |