您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

147 行
4.0 KiB

  1. #!/bin/sh
  2. mkdir -p ~/.var/log
  3. mkdir -p ~/.local/bin
  4. _iswindows(){
  5. case `uname` in
  6. (CYGWIN*) return 0;;
  7. (MINGW*) return 0;;
  8. esac
  9. return 1
  10. }
  11. gen_source_script(){
  12. # _gen_source_script file lines
  13. test $# -eq 2 || return 1
  14. head -n $2 $1 | \grep -v '^#!' | sed -e 's/^..//g'
  15. }
  16. get_install_script(){
  17. local dir="$HOME/.local/bin"
  18. mkdir -p "$dir"
  19. for f in "$@"
  20. do
  21. bn=$(basename "$f")
  22. type $bn >/dev/null 2>&1 || {
  23. if type wget >/dev/null 2>&1
  24. then
  25. wget "$f" -P "$dir/" &&
  26. chmod u+x "${dir}/${bn}"
  27. elif type curl >/dev/null 2>&1
  28. then
  29. curl --url "$f" --output "${dir}/${bn}" &&
  30. chmod u+x "${dir}/${bn}"
  31. fi
  32. }
  33. done
  34. }
  35. install_symlink_script(){
  36. mkdir -p "$HOME/.local/bin/"
  37. for f in "$@"
  38. do
  39. ln -s "$PWD/$f" "$HOME/.local/bin/"
  40. done
  41. }
  42. git_config(){
  43. type git >/dev/null 2>&1 || return 1
  44. _gitconfig="git config --global"
  45. $_gitconfig user.name '10sr'
  46. $_gitconfig user.email '8slashes+git@gmail.com'
  47. $_gitconfig core.autocrlf false
  48. $_gitconfig core.excludesfile '~/.gitignore'
  49. $_gitconfig color.ui auto
  50. $_gitconfig status.relativePaths false
  51. $_gitconfig status.showUntrackedFiles normal
  52. $_gitconfig log.date iso
  53. type xz && \
  54. $_gitconfig tar.txz.command "xz -c"
  55. $_gitconfig push.default current
  56. $_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"
  57. $_gitconfig alias.st "status -s -b"
  58. $_gitconfig alias.b "branch"
  59. $_gitconfig alias.sb "show-branch"
  60. $_gitconfig alias.ci "commit --verbose"
  61. $_gitconfig alias.co "checkout"
  62. $_gitconfig alias.cim "commit --verbose -m"
  63. $_gitconfig alias.di "diff --color"
  64. $_gitconfig alias.me "merge --no-ff --stat -v"
  65. $_gitconfig alias.gr "grep -n"
  66. $_gitconfig alias.ls "ls-files"
  67. # $_gitconfig alias.ls "ls-files -v --full-name"
  68. # $_gitconfig alias.ls "status -u -s ."
  69. $_gitconfig alias.sl "!sl"
  70. # $_gitconfig alias.my-ls "ls-files | xargs ls"
  71. # $_gitconfig alias.ll "!git ls-files | xargs ls -l -CFG --color=auto --time-style=long-iso"
  72. $_gitconfig alias.addi "add -i"
  73. $_gitconfig alias.clean-p "!test -z \"\$(git status -s -uno)\""
  74. $_gitconfig alias.newb "checkout -b"
  75. $_gitconfig alias.endb \
  76. "!sh -cx 'git stash && git checkout master && git merge --no-ff -'"
  77. #$_gitconfig alias.wc "!git ls-files -z | xargs -0 wc"
  78. # $_gitconfig push.default "simple"
  79. if _iswindows; then
  80. $_gitconfig core.fileMode false
  81. fi
  82. }
  83. install_files(){
  84. src_hilite_src="`pwd`/conf/src-hilite.style"
  85. src_hilite_dst="$HOME/.local/share/source-highlight/src_hilite.style"
  86. #install -D --backup "$src_hilite_src" "$src_hilite_dst"
  87. }
  88. mac_defaults(){
  89. test "`uname`" = Darwin || return 1
  90. # http://appdrill.net/60641/mac-boot-mute.html
  91. #sudo nvram SystemAudioVolume=%80
  92. # add quit entry in menu
  93. defaults write com.apple.finder QuitMenuItem -bool YES
  94. # show full path on titlebar
  95. defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
  96. # do not show desktop icons
  97. defaults write com.apple.finder CreateDesktop -boolean false
  98. killall Finder
  99. # disable dashboard
  100. #defaults write com.apple.dashboard mcx-disabled -bool YES
  101. }
  102. mac_start_daemon(){
  103. test "`uname`" = Darwin || return 1
  104. test "`launchctl getenv LC_ALL`" = C || sudo launchctl setenv LC_ALL C
  105. if ! (launchctl list | grep com.apple.locate)
  106. then
  107. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
  108. fi
  109. }
  110. default(){
  111. get_install_script \
  112. https://gist.github.com/10sr/6852317/raw/colortable16.sh \
  113. https://gist.github.com/10sr/6852331/raw/256colors2.pl
  114. git_config
  115. mac_defaults
  116. mac_start_daemon
  117. install_files
  118. }
  119. if test $# -eq 0
  120. then
  121. default
  122. else
  123. "$@"
  124. fi