| @@ -3,7 +3,7 @@ set -e | |||||
| # setup.sh --- 10sr setup script | # setup.sh --- 10sr setup script | ||||
| __setups="gitconf tmux scripts darwin dirs selfupdate windirs" | |||||
| __setups="shrc_common gitconf tmux scripts darwin dirs selfupdate windirs" | |||||
| __homelocal="$HOME/.local" | __homelocal="$HOME/.local" | ||||
| __homevar="$HOME/.var" | __homevar="$HOME/.var" | ||||
| @@ -23,41 +23,47 @@ _download(){ | |||||
| } | } | ||||
| ############################# | |||||
| # gen_common | |||||
| ################################## | |||||
| # Detect systems | |||||
| # Generate ~/.shrc.common, which contains system infos and is sourced from | |||||
| # setup.sh (this file) and dotfiles/shrc . | |||||
| # This functions is always called. | |||||
| detect_systems(){ | |||||
| ismsys=false | |||||
| iscygwin=false | |||||
| iswindows=false | |||||
| # this variable must consistent with shrc | |||||
| __shrc_common="$HOME/.shrc.common" | |||||
| isdarwin=false | |||||
| isfreebsd=false | |||||
| isbsd=false | |||||
| gen_common(){ | |||||
| test -f "$__shrc_common" && rm -- "$__shrc_common" | |||||
| __ismsys=false | |||||
| __iscygwin=false | |||||
| __iswindows=false | |||||
| __isdarwin=false | |||||
| __isfreebsd=false | |||||
| __isbsd=false | |||||
| __islinux=false | |||||
| islinux=false | |||||
| # $OSTYPE is another choice. which is better? | # $OSTYPE is another choice. which is better? | ||||
| # NOTE: sh on FreeBSD does not define OSTYPE | # NOTE: sh on FreeBSD does not define OSTYPE | ||||
| case `uname` in | case `uname` in | ||||
| (MINGW*) __ismsys=true ;; | |||||
| (CYGWIN*) __iscygwin=true ;; | |||||
| (Darwin*) __isdarwin=true ;; | |||||
| (FreeBSD*) __isfreebsd=true ;; | |||||
| (Linux*) __islinux=true ;; | |||||
| (MINGW*) ismsys=true ;; | |||||
| (CYGWIN*) iscygwin=true ;; | |||||
| (Darwin*) isdarwin=true ;; | |||||
| (FreeBSD*) isfreebsd=true ;; | |||||
| (Linux*) islinux=true ;; | |||||
| esac | esac | ||||
| ($__ismsys || $__iscygwin) && __iswindows=true | |||||
| ($ismsys || $iscygwin) && iswindows=true | |||||
| # is this true? | # is this true? | ||||
| ($__isdarwin || $__isfreebsd) && __isbsd=true | |||||
| ($isdarwin || $isfreebsd) && isbsd=true | |||||
| return 0 | |||||
| } | |||||
| ############################# | |||||
| # shrc_common | |||||
| # Generate ~/.shrc.common, which contains system infos and is sourced from | |||||
| # setup.sh (this file) and dotfiles/shrc . | |||||
| # this variable must consistent with shrc | |||||
| __shrc_common="$HOME/.shrc.common" | |||||
| setup_shrc_common(){ | |||||
| test -f "$__shrc_common" && rm -- "$__shrc_common" | |||||
| cat <<__EOC__ >"$__shrc_common" | cat <<__EOC__ >"$__shrc_common" | ||||
| #!/bin/sh | #!/bin/sh | ||||
| @@ -65,15 +71,15 @@ gen_common(){ | |||||
| # $__shrc_common | # $__shrc_common | ||||
| # Automatically generated by $0 | # Automatically generated by $0 | ||||
| ismsys=$__ismsys | |||||
| iscygwin=$__iscygwin | |||||
| iswindows=$__iswindows | |||||
| ismsys=$ismsys | |||||
| iscygwin=$iscygwin | |||||
| iswindows=$iswindows | |||||
| isdarwin=$__isdarwin | |||||
| isfreebsd=$__isfreebsd | |||||
| isbsd=$__isbsd | |||||
| isdarwin=$isdarwin | |||||
| isfreebsd=$isfreebsd | |||||
| isbsd=$isbsd | |||||
| islinux=$__islinux | |||||
| islinux=$islinux | |||||
| __homelocal="$__homelocal" | __homelocal="$__homelocal" | ||||
| __homevar="$__homevar" | __homevar="$__homevar" | ||||
| @@ -293,12 +299,11 @@ setup_dirs(){ | |||||
| main(){ | main(){ | ||||
| gen_common | |||||
| . "$__shrc_common" | |||||
| detect_systems | |||||
| if test -z "$1" | if test -z "$1" | ||||
| then | then | ||||
| echo "usage: ./setup.sh <setups> ..." | |||||
| echo "Usage: ./setup.sh <setups> ..." | |||||
| echo "setups: all $__setups" | echo "setups: all $__setups" | ||||
| exit 1 | exit 1 | ||||
| fi | fi | ||||