diff --git a/setup.sh b/setup.sh index 8aaadb3..f23cda6 100755 --- a/setup.sh +++ b/setup.sh @@ -4,7 +4,7 @@ set -e # setup.sh --- 10sr setup script # 2014, 10sr. Unlicensed -__setups="shrc_common gitconf tmux scripts darwin dirs selfupdate windirs dotfiles" +__setups="shrc_common gitconf tmux scripts darwin dirs selfupdate windirs dotfiles env" __homelocal="$HOME/.local" __homevar="$HOME/.var" @@ -35,6 +35,26 @@ islinux= ########################### # utils +##########################33 +# Utilities + +__tput_bold=`tput bold || true` +__tput_default=`tput sgr0 || true` +__tput_yellow=`tput setaf 3 || true` + +_msg(){ + echo ">> ${__tput_bold}$*${__tput_default}" +} + +_warn(){ + echo ">>> ${__tput_yellow}${__tput_bold}$*${__tput_default}" 1>&2 +} + +_die(){ + _warn "$@" + exit 1 +} + _download(){ # download if type wget >/dev/null 2>&1 @@ -43,6 +63,9 @@ _download(){ elif type curl >/dev/null 2>&1 then curl --url "$1" --output "$2" + else + _warn "No download program found." + _die "Install wget or curl." fi } @@ -71,7 +94,7 @@ detect_systems(){ ($ismsys || $iscygwin) && iswindows=true # is this true? ($isdarwin || $isfreebsd) && isbsd=true - return 0 + _msg "Detecting the system...done" } ################################ @@ -82,6 +105,7 @@ detect_systems(){ # setup selfupdate setup_selfupdate(){ + _msg "Download latest setup.sh from 10sr repository." mkdir -p "$DOTFILES_DIR" _download $_dotfiles_url_base/setup.sh "$DOTFILES_DIR/"setup.sh chmod +x "$DOTFILES_DIR"/setup.sh @@ -92,20 +116,23 @@ setup_selfupdate(){ # setup dotfiles setup_dotfiles(){ + _msg "Prepare latest dotfiles." mkdir -p "$DOTFILES_DIR" if test "$1" = "--git" then # git clone + _msg "Using git" if test -d "$DOTFILES_DIR"/.git then - echo "Git repository $DOTFILES_DIR already exists" - echo "Skipping" + _warn "Git repository $DOTFILES_DIR already exists" + _warn "Skipping" else git clone git@github.com:10sr/dotfiles.git "$DOTFILES_DIR" fi else for f in $@ do + _msg "Prepareing $f" mkdir -p "`dirname $f`" _download $_dotfiles_url_base/$f "$DOTFILES_DIR"/$f done @@ -122,6 +149,7 @@ setup_dotfiles(){ __shrc_common="$HOME/.shrc.common" setup_shrc_common(){ + _msg "Generate $__shrc_common" test -f "$__shrc_common" && rm -- "$__shrc_common" cat <<__EOC__ >"$__shrc_common" @@ -149,9 +177,10 @@ __EOC__ # setup gitconf setup_gitconf(){ + _msg "Configure git environment" if ! command -v git >/dev/null then - echo "git not found" + _msg "Git program not found" return 0 fi @@ -212,6 +241,7 @@ git checkout master && git merge --no-ff --stat --verbose -'" setup_tmux(){ tmux_conf_local="$HOME/.tmux.conf.local" + _msg "Generate $tmux_conf_local" case "`hostname`" in arch-aspireone) @@ -236,9 +266,9 @@ setup_tmux(){ ;; esac - cat <<__EOC__ >"$tmux_conf_local" + _date= `date` cat <<__EOC__ >"$tmux_conf_local" # $tmux_conf_local -# Automatically generated by $0 +# Automatically generated by $0 at $_date set -g status-right "${USER}@$(hostname) | #(tmux -V) " @@ -268,10 +298,13 @@ _fetch_script(){ } setup_scripts(){ + _msg "Download some utility scripts" _fetch_script \ https://gist.github.com/10sr/6852317/raw/colortable16.sh colortable16.sh _fetch_script \ https://gist.github.com/10sr/6852331/raw/256colors2.pl 256colors2.pl + _fetch_script \ + https://github.com/icy/pacapt/raw/ng/pacapt pacapt } ################################ @@ -316,6 +349,7 @@ setup_darwin(){ setup_windirs(){ $iswindows || return 0 + _msg "Setup some directories for windows environment" if $iscygwin then @@ -325,6 +359,7 @@ setup_windirs(){ if test -n "$__winhome" -a -d "$__winhome" -a '!' -e "$HOME/.winhome" then + _msg Make symlink to "$__winhome" with name "$HOME/.winhome" ln -s "$__winhome" "$HOME/.winhome" fi } @@ -333,12 +368,26 @@ setup_windirs(){ # setup dirs setup_dirs(){ - mkdir -p "$__homelocal" - mkdir -p "$__homelocal/bin" - mkdir -p "$__homevar" + _msg Make some direcoties + mkdir -vp "$__homelocal" + mkdir -vp "$__homelocal/bin" + mkdir -vp "$__homevar" } +#################################### +# setup env +# setup new environment with default options + +setup_env(){ + setup_shrc_common + setup_dirs + setup_gitconf + setup_tmux + setup_scripts + setup_dotfiles --git +} + ######################### # main @@ -357,9 +406,9 @@ main(){ _cmd=$1 shift - set -x + _msg Running setup_$_cmd setup_$_cmd "$@" - set +x + _msg Setup done } main "$@"