diff --git a/setup.sh b/setup.sh index b888586..9d5e4a6 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ set -e # 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" __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? # NOTE: sh on FreeBSD does not define OSTYPE 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 - ($__ismsys || $__iscygwin) && __iswindows=true + ($ismsys || $iscygwin) && iswindows=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" #!/bin/sh @@ -65,15 +71,15 @@ gen_common(){ # $__shrc_common # 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" __homevar="$__homevar" @@ -293,12 +299,11 @@ setup_dirs(){ main(){ - gen_common - . "$__shrc_common" + detect_systems if test -z "$1" then - echo "usage: ./setup.sh ..." + echo "Usage: ./setup.sh ..." echo "setups: all $__setups" exit 1 fi