Mercurial > ec-dotfiles
annotate setup @ 475:86873b811343
Add slim syntax to vim.
| author | edogawaconan <me@myconan.net> | 
|---|---|
| date | Mon, 22 Jul 2013 12:40:24 +0900 | 
| parents | 8c637534d6cd | 
| children | 064970c9df7c | 
| rev | line source | 
|---|---|
| 1 
ddd721f10cb8
Unified installer/uninstaller.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 1 #!/bin/sh | 
| 
ddd721f10cb8
Unified installer/uninstaller.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 2 | 
| 404 | 3 # This script is bourne-shell compatible. | 
| 4 # Or at least it is when I last tested it in Solaris 10. | |
| 5 | |
| 6 # Ensure no variable is empty when used. | |
| 325 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 7 set -u | 
| 404 | 8 # Stop on any error. | 
| 325 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 9 set -e | 
| 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 10 | 
| 404 | 11 # Get directory where this script and dotfiles are located. | 
| 12 # $0 contains either full path when executed from a PATH (godwhy) | |
| 13 # or with complete path or ./<scriptname> when executed that way. | |
| 14 # Therefore it's safe to use dirname in this case. | |
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 15 basedir="`dirname "${0}"`" | 
| 404 | 16 | 
| 17 # To get actual path, go to the directory and pwd from it. | |
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 18 cd "${basedir}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 19 basedir="`pwd`" | 
| 404 | 20 | 
| 21 # FIXME: test existence of the directories. | |
| 22 # dotfiles | |
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 23 rcdir="${basedir}/rc" | 
| 404 | 24 # misc scripts | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 25 bindir="${basedir}/bin" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 26 | 
| 471 
9af2e1cd964e
Add test for $HOME writability.
 edogawaconan <me@myconan.net> parents: 
467diff
changeset | 27 # Make sure $HOME points somewhere and writable. | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 28 test -n "${HOME}" || exit 1 | 
| 471 
9af2e1cd964e
Add test for $HOME writability.
 edogawaconan <me@myconan.net> parents: 
467diff
changeset | 29 test -w "${HOME}" || exit 1 | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 30 | 
| 404 | 31 # A safe echo. | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 32 _echo() { | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 33 _echon "${*}"; printf "\n" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 34 } | 
| 404 | 35 # A safe and cross platform echo -n. | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 36 _echon() { | 
| 338 | 37 printf '%s' "${*}" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 38 } | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 39 | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 40 _tcsh() { | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 41 case "$1" in | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 42 uninstall|install) | 
| 332 | 43 _rc "${1}" "cshrc" ".ecos_tcsh" | 
| 246 
4eeccee282b1
Much more portable. Tested on Solaris (bourne shell yay).
 Edho Arief <edho@myconan.net> parents: 
143diff
changeset | 44 _init "${1}" 'test -r "${HOME}/.ecos_tcsh" && source "${HOME}/.ecos_tcsh" #ECCORE_TCSH' ".cshrc" | 
| 463 
4180a94a80af
Add FreeBSD tcsh compatibility.
 Edho Arief <edho@myconan.net> parents: 
456diff
changeset | 45 _init "${1}" 'test -r "${HOME}/.ecos_tcsh" && source "${HOME}/.ecos_tcsh" #ECCORE_TCSH' ".tcshrc" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 46 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 47 esac | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 48 } | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 49 | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 50 _bash() { | 
| 338 | 51 case "${1}" in | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 52 uninstall|install) | 
| 332 | 53 _rc "${1}" "bashrc" ".ecos_bash" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 54 _init "${1}" '[ -r "${HOME}/.ecos_bash" ] && . "${HOME}/.ecos_bash" #ECCORE_BASH' ".bash_profile" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 55 _init "${1}" '[ -r "${HOME}/.ecos_bash" ] && . "${HOME}/.ecos_bash" #ECCORE_BASH' ".bashrc" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 56 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 57 esac | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 58 } | 
| 1 
ddd721f10cb8
Unified installer/uninstaller.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 59 | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 60 _zsh() { | 
| 338 | 61 case "${1}" in | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 62 uninstall|install) | 
| 332 | 63 _rc "${1}" "zshrc" ".ecos_zsh" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 64 _init "${1}" '[ -r "${HOME}/.ecos_zsh" ] && . "${HOME}/.ecos_zsh" #ECCORE_ZSH' ".zshrc" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 65 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 66 esac | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 67 } | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 68 | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 69 _rc() { | 
| 135 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 70 if test -z "${3}" || test -z "${2}" || test -z "${1}"; then | 
| 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 71 _echo "Invalid command." | 
| 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 72 return | 
| 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 73 fi | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 74 _srcfile="${rcdir}/${2}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 75 _dstfile="${HOME}/${3}" | 
| 325 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 76 _dstdir="`_echo "${_dstfile}" | sed -e 's,^\(.*\)/[^/]*$,\1,'`" | 
| 315 
c6ad8279b076
Support for solarized vim color scheme.
 Edho Arief <edho@myconan.net> parents: 
246diff
changeset | 77 mkdir -p "${_dstdir}" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 78 if test ! -h "${_dstfile}"; then | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 79 if test -f "${_dstfile}"; then | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 80 cp "${_dstfile}" "${_dstfile}.bak" | 
| 135 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 81 _echo "${_dstfile} backed up to ${_dstfile}.bak" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 82 elif test -d "${_dstfile}"; then | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 83 cp -r "${_dstfile}" "${_dstfile}.bak" | 
| 135 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 84 _echo "Directory ${_dstfile} backed up to ${_dstfile}.bak" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 85 fi | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 86 fi | 
| 135 
6a110770a756
A bit more sanity testing.
 Edho Prima Arief <edho@myconan.net> parents: 
130diff
changeset | 87 rm -rf "${_dstfile}" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 88 case "${1}" in | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 89 install) | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 90 ln -fs "${_srcfile}" "${_dstfile}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 91 _echo "Installed ${_dstfile}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 92 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 93 uninstall) | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 94 _echo "Removed ${_dstfile}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 95 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 96 esac | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 97 } | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 98 | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 99 _init() { | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 100 _script="${HOME}/${3}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 101 _scripttmp="${HOME}/.tmp.${3}" | 
| 325 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 102 rm -f "${_scripttmp}" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 103 _data="${2}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 104 if [ -f "${_script}" ]; then | 
| 325 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 105 sed -e "/`_echo "${_data}" | sed -e 's/.*#//'`/d" "${_script}" > "${_scripttmp}" | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 106 mv -f "${_scripttmp}" "${_script}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 107 fi | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 108 case "${1}" in | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 109 install) | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 110 _echo "${_data}" >> "${_script}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 111 _echo "Added autostart to ${_script}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 112 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 113 uninstall) | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 114 _echo "Removed autostart from ${_script}" | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 115 ;; | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 116 esac | 
| 1 
ddd721f10cb8
Unified installer/uninstaller.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 117 } | 
| 
ddd721f10cb8
Unified installer/uninstaller.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 118 | 
| 474 | 119 _touch() { | 
| 120 touch "${@}" | |
| 121 _echo "Ensured existence of ${@}" | |
| 122 } | |
| 123 | |
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 124 _help() { | 
| 23 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 125 cat <<EOF | 
| 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 126 Usage: ${0} [install|uninstall] | 
| 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 127 EOF | 
| 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 128 } | 
| 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 129 | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 130 case "${1}" in | 
| 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 131 install|uninstall) | 
| 325 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 132 _tcsh "${1}" | 
| 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 133 _bash "${1}" | 
| 
795ad57794a6
[setup] Returning solaris compatibility.
 Edho Arief <edho@myconan.net> parents: 
315diff
changeset | 134 _zsh "${1}" | 
| 417 | 135 _rc "${1}" "../bin" ".ecos_bin" | 
| 136 _rc "${1}" "gemrc" ".gemrc" | |
| 356 | 137 _rc "${1}" "gitconfig" ".gitconfig" | 
| 456 | 138 _rc "${1}" "gitignore_global" ".gitignore_global" | 
| 332 | 139 _rc "${1}" "hgrc" ".hgrc" | 
| 473 | 140 _rc "${1}" "hgignore_global" ".hgignore_global" | 
| 474 | 141 _touch "${HOME}/.hgignore_global.local" | 
| 417 | 142 _rc "${1}" "inputrc" ".inputrc" | 
| 143 _rc "${1}" "tmux.conf" ".tmux.conf" | |
| 315 
c6ad8279b076
Support for solarized vim color scheme.
 Edho Arief <edho@myconan.net> parents: 
246diff
changeset | 144 _rc "${1}" "vim-solarized" ".vim/colors/solarized.vim" | 
| 410 
fd0a889066a6
Added syntax highlight for coffeescript.
 Edho Arief <edho@myconan.net> parents: 
404diff
changeset | 145 _rc "${1}" "vim-syntax-coffee" ".vim/syntax/coffee.vim" | 
| 417 | 146 _rc "${1}" "vim-syntax-scss" ".vim/syntax/scss.vim" | 
| 467 | 147 _rc "${1}" "vim-syntax-json" ".vim/syntax/json.vim" | 
| 475 | 148 _rc "${1}" "vim-syntax-slim" ".vim/syntax/slim.vim" | 
| 425 | 149 _rc "${1}" "vim-autoload-pathogen" ".vim/autoload/pathogen.vim" | 
| 417 | 150 _rc "${1}" "vimrc" ".vimrc" | 
| 26 
175848778e77
Added initial upgrade support.
 Edho Prima Arief <me@myconan.net> parents: 
23diff
changeset | 151 ;; | 
| 23 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 152 *) | 
| 127 
a7484f2c9616
Long-overdue massive reorganization.
 Edho Prima Arief <edho@myconan.net> parents: 
126diff
changeset | 153 _help | 
| 23 
738a2da8b79c
Added usage information for setup script.
 Edho Prima Arief <me@myconan.net> parents: 
17diff
changeset | 154 ;; | 
| 1 
ddd721f10cb8
Unified installer/uninstaller.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 155 esac | 
| 246 
4eeccee282b1
Much more portable. Tested on Solaris (bourne shell yay).
 Edho Arief <edho@myconan.net> parents: 
143diff
changeset | 156 | 
