install.sh (1160B)
1 #!/bin/bash 2 3 set -ue 4 5 files=( 6 bash_logout 7 bash_profile 8 bashrc 9 inputrc 10 gdbinit 11 gitconfig 12 gitignore 13 pythonrc 14 tmux.conf 15 wgetrc 16 Xresources 17 xmodmap 18 gnupg/gpg-agent.conf 19 gnupg/sshcontrol 20 ssh/authorized_keys 21 ssh/config 22 "ssh/known_hosts 0022" 23 ssh/rc 24 bin/post 25 bin/watch.sh 26 vim/ftdetect/omiltem.vim 27 vim/ftplugin/omiltem.vim 28 vim/indent/omiltem.vim 29 vim/syntax/omiltem.vim 30 vim/plugin/postwrite.vim 31 vim/plugin/sensible.vim 32 vim/plugin/sudo.vim 33 vim/plugin/writegood.vim 34 vim/vimrc 35 ) 36 37 if ! [ -p "${HOME}/.post" ]; then 38 rm -f "${HOME}/.post" && mkfifo "${HOME}/.post" 39 fi 40 41 (umask 0077 && mkdir -p "${HOME}/.cache/vim" "${HOME}/.cache/vim/swap" "${HOME}/.cache/vim/undo") 42 (umask 0077 && mkdir -p "${HOME}/.gnupg") 43 chmod go-rx "${HOME}/.gnupg" "${HOME}/.cache/vim" 44 45 gpg --import gnupg/keys/*.asc 46 gpg --import-ownertrust < gnupg/otrust.txt 47 48 for line in "${files[@]}"; do 49 read src mask <<< "${line}" 50 if [ -z "${mask}" ]; then 51 mask="0222" 52 fi 53 54 dest="${HOME}/.${src}" 55 mkdir -p "$(dirname "${dest}")" 56 57 tmp=$(mktemp -u -p "${HOME}" .tmp.XXXXXXXXXX) 58 (umask "${mask}" && cp "${src}" "${tmp}") 59 mv -T --no-copy -f "${tmp}" "${dest}" || rm "${tmp}" 60 done