|
|
@@ -4,7 +4,7 @@ set -e |
|
|
|
# setup.sh --- 10sr setup script |
|
|
|
# 2014, 10sr. Unlicensed <http://unlicense.org> |
|
|
|
|
|
|
|
__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 <url> <file> |
|
|
|
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 "$@" |