|
|
@@ -2,6 +2,10 @@ |
|
|
|
|
|
|
|
# setup.sh --- 10sr setup script |
|
|
|
|
|
|
|
__setups="gitconf tmux scripts darwin dirs" |
|
|
|
|
|
|
|
__setup_url="https://raw.github.com/10sr/dotfiles/master/setup.sh" |
|
|
|
|
|
|
|
__homelocal="$HOME/.local" |
|
|
|
__homevar="$HOME/.var" |
|
|
|
|
|
|
@@ -10,6 +14,7 @@ __homevar="$HOME/.var" |
|
|
|
|
|
|
|
# Generate ~/.shrc.common, which contains system infos and is sourced from |
|
|
|
# setup.sh (this file) and dotfiles/shrc . |
|
|
|
# This functions is always called. |
|
|
|
|
|
|
|
# this variable must consistent with shrc |
|
|
|
__shrc_common="$HOME/.shrc.common" |
|
|
@@ -48,10 +53,62 @@ __homevar="$__homevar" |
|
|
|
__EOC__ |
|
|
|
} |
|
|
|
|
|
|
|
################################ |
|
|
|
# git_configs |
|
|
|
|
|
|
|
setup_gitconf(){ |
|
|
|
if ! command -v git >/dev/null |
|
|
|
then |
|
|
|
echo "git not found" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
_gitconfig="git config --global" |
|
|
|
|
|
|
|
$_gitconfig user.name '10sr' |
|
|
|
$_gitconfig user.email '8slashes+git@gmail.com' |
|
|
|
$_gitconfig core.autocrlf false |
|
|
|
$_gitconfig core.excludesfile '~/.gitignore' |
|
|
|
$_gitconfig color.ui auto |
|
|
|
$_gitconfig status.relativePaths false |
|
|
|
$_gitconfig status.showUntrackedFiles normal |
|
|
|
$_gitconfig log.date iso |
|
|
|
command -v xz >/dev/null && \ |
|
|
|
$_gitconfig tar.txz.command "xz -c" |
|
|
|
$_gitconfig push.default current |
|
|
|
|
|
|
|
$_gitconfig alias.graph "log --graph --date-order -C -M --pretty=tformat:\"%C(green)%h%C(reset) %C(white)%ad%C(reset) %C(red)%an%C(reset)%C(yellow)%d%C(reset) %C(white bold)%s%C(reset)\" --all --date=iso -n 499" |
|
|
|
$_gitconfig alias.st "status -s -b" |
|
|
|
$_gitconfig alias.b "branch" |
|
|
|
$_gitconfig alias.sb "show-branch" |
|
|
|
$_gitconfig alias.ci "commit --verbose" |
|
|
|
$_gitconfig alias.co "checkout" |
|
|
|
$_gitconfig alias.cim "commit --verbose -m" |
|
|
|
$_gitconfig alias.di "diff --color" |
|
|
|
$_gitconfig alias.me "merge --no-ff --stat -v" |
|
|
|
$_gitconfig alias.gr "grep -n" |
|
|
|
$_gitconfig alias.ls "ls-files" |
|
|
|
# $_gitconfig alias.ls "ls-files -v --full-name" |
|
|
|
# $_gitconfig alias.ls "status -u -s ." |
|
|
|
$_gitconfig alias.sl "!sl" |
|
|
|
# $_gitconfig alias.my-ls "ls-files | xargs ls" |
|
|
|
# $_gitconfig alias.ll "!git ls-files | xargs ls -l -CFG --color=auto --time-style=long-iso" |
|
|
|
$_gitconfig alias.addi "add -i" |
|
|
|
$_gitconfig alias.clean-p "!test -z \"\$(git status -s -uno)\"" |
|
|
|
$_gitconfig alias.bopen "checkout -b" |
|
|
|
$_gitconfig alias.bclose \ |
|
|
|
"!sh -cx 'git stash && git checkout master && git merge --no-ff -'" |
|
|
|
#$_gitconfig alias.wc "!git ls-files -z | xargs -0 wc" |
|
|
|
# $_gitconfig push.default "simple" |
|
|
|
if $iswindows; then |
|
|
|
$_gitconfig core.fileMode false |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
############################# |
|
|
|
# gen_tmux_conf_local |
|
|
|
|
|
|
|
gen_tmux_conf_local(){ |
|
|
|
setup_tmux(){ |
|
|
|
tmux_conf_local="$HOME/.tmux.conf.local" |
|
|
|
|
|
|
|
case "`hostname`" in |
|
|
@@ -115,7 +172,7 @@ _fetch_script(){ |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
install_scripts(){ |
|
|
|
setup_scripts(){ |
|
|
|
_fetch_script \ |
|
|
|
https://gist.github.com/10sr/6852317/raw/colortable16.sh colortable16.sh |
|
|
|
_fetch_script \ |
|
|
@@ -123,9 +180,9 @@ install_scripts(){ |
|
|
|
} |
|
|
|
|
|
|
|
################################ |
|
|
|
# darwin_set_defaults |
|
|
|
# darwin |
|
|
|
|
|
|
|
darwin_set_defaults(){ |
|
|
|
__darwin_set_defaults(){ |
|
|
|
$isdarwin || return 1 |
|
|
|
|
|
|
|
# http://appdrill.net/60641/mac-boot-mute.html |
|
|
@@ -144,10 +201,7 @@ darwin_set_defaults(){ |
|
|
|
#defaults write com.apple.dashboard mcx-disabled -bool YES |
|
|
|
} |
|
|
|
|
|
|
|
################################ |
|
|
|
# darwin_start_daemon |
|
|
|
|
|
|
|
darwin_start_daemon(){ |
|
|
|
__darwin_start_daemon(){ |
|
|
|
$isdarwin || return 1 |
|
|
|
|
|
|
|
test "`launchctl getenv LC_ALL`" = C || sudo launchctl setenv LC_ALL C |
|
|
@@ -157,62 +211,15 @@ darwin_start_daemon(){ |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
################################ |
|
|
|
# git_configs |
|
|
|
|
|
|
|
git_configs(){ |
|
|
|
if ! command -v git >/dev/null |
|
|
|
then |
|
|
|
echo "git not found" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
_gitconfig="git config --global" |
|
|
|
|
|
|
|
$_gitconfig user.name '10sr' |
|
|
|
$_gitconfig user.email '8slashes+git@gmail.com' |
|
|
|
$_gitconfig core.autocrlf false |
|
|
|
$_gitconfig core.excludesfile '~/.gitignore' |
|
|
|
$_gitconfig color.ui auto |
|
|
|
$_gitconfig status.relativePaths false |
|
|
|
$_gitconfig status.showUntrackedFiles normal |
|
|
|
$_gitconfig log.date iso |
|
|
|
command -v xz >/dev/null && \ |
|
|
|
$_gitconfig tar.txz.command "xz -c" |
|
|
|
$_gitconfig push.default current |
|
|
|
|
|
|
|
$_gitconfig alias.graph "log --graph --date-order -C -M --pretty=tformat:\"%C(green)%h%C(reset) %C(white)%ad%C(reset) %C(red)%an%C(reset)%C(yellow)%d%C(reset) %C(white bold)%s%C(reset)\" --all --date=iso -n 499" |
|
|
|
$_gitconfig alias.st "status -s -b" |
|
|
|
$_gitconfig alias.b "branch" |
|
|
|
$_gitconfig alias.sb "show-branch" |
|
|
|
$_gitconfig alias.ci "commit --verbose" |
|
|
|
$_gitconfig alias.co "checkout" |
|
|
|
$_gitconfig alias.cim "commit --verbose -m" |
|
|
|
$_gitconfig alias.di "diff --color" |
|
|
|
$_gitconfig alias.me "merge --no-ff --stat -v" |
|
|
|
$_gitconfig alias.gr "grep -n" |
|
|
|
$_gitconfig alias.ls "ls-files" |
|
|
|
# $_gitconfig alias.ls "ls-files -v --full-name" |
|
|
|
# $_gitconfig alias.ls "status -u -s ." |
|
|
|
$_gitconfig alias.sl "!sl" |
|
|
|
# $_gitconfig alias.my-ls "ls-files | xargs ls" |
|
|
|
# $_gitconfig alias.ll "!git ls-files | xargs ls -l -CFG --color=auto --time-style=long-iso" |
|
|
|
$_gitconfig alias.addi "add -i" |
|
|
|
$_gitconfig alias.clean-p "!test -z \"\$(git status -s -uno)\"" |
|
|
|
$_gitconfig alias.bopen "checkout -b" |
|
|
|
$_gitconfig alias.bclose \ |
|
|
|
"!sh -cx 'git stash && git checkout master && git merge --no-ff -'" |
|
|
|
#$_gitconfig alias.wc "!git ls-files -z | xargs -0 wc" |
|
|
|
# $_gitconfig push.default "simple" |
|
|
|
if $iswindows; then |
|
|
|
$_gitconfig core.fileMode false |
|
|
|
fi |
|
|
|
setup_darwin(){ |
|
|
|
__darwin_set_defaults |
|
|
|
__darwin_start_daemon |
|
|
|
} |
|
|
|
|
|
|
|
######################### |
|
|
|
# mkdirs |
|
|
|
|
|
|
|
mkdirs(){ |
|
|
|
setup_dirs(){ |
|
|
|
install -d "$__homelocal" |
|
|
|
install -d "$__homelocal/bin" |
|
|
|
install -d "$__homevar" |
|
|
@@ -222,22 +229,42 @@ mkdirs(){ |
|
|
|
# main |
|
|
|
|
|
|
|
main(){ |
|
|
|
set -x |
|
|
|
|
|
|
|
gen_common |
|
|
|
. "$__shrc_common" |
|
|
|
|
|
|
|
mkdirs |
|
|
|
install_scripts |
|
|
|
git_configs |
|
|
|
gen_tmux_conf_local |
|
|
|
if $isdarwin |
|
|
|
if test -z "$1" |
|
|
|
then |
|
|
|
darwin_set_defaults |
|
|
|
darwin_start_daemon |
|
|
|
echo "usage: ./setup.sh <setups> ..." |
|
|
|
echo "setups: all $__setups" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
set +x |
|
|
|
while test -n "$1" |
|
|
|
do |
|
|
|
|
|
|
|
if test "$1" = all |
|
|
|
then |
|
|
|
for c in $__setups |
|
|
|
do |
|
|
|
set -x |
|
|
|
setup_$c |
|
|
|
set +x |
|
|
|
done |
|
|
|
fi |
|
|
|
|
|
|
|
for c in $__setups |
|
|
|
do |
|
|
|
if test "$1" = "$c" |
|
|
|
then |
|
|
|
set -x |
|
|
|
setup_$c |
|
|
|
set +x |
|
|
|
fi |
|
|
|
shift |
|
|
|
done |
|
|
|
|
|
|
|
done |
|
|
|
} |
|
|
|
|
|
|
|
main "$@" |