diff --git a/README.md b/README.md index 2a12389..181263b 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,6 @@ bash prompt. Get Latest Makefile ------------------- -NOTE: Currently on the way of migration from `setup.sh` to `Makefile`. -`setup.sh` is available at `j.mp/10sr_setup`. - Issue curl -L j.mp/10sr_make | make -f - diff --git a/setup.sh b/setup.sh deleted file mode 100755 index b5df98c..0000000 --- a/setup.sh +++ /dev/null @@ -1,438 +0,0 @@ -#!/bin/sh -set -e - -# setup.sh --- 10sr setup script -# 2014, 10sr. Unlicensed - -__setups="shrc_common tmux scripts darwin dirs selfupdate windirs dotfiles env" - -__homelocal="$HOME/.local" -__homevar="$HOME/.var" -__dotfiles_dir_default="$HOME/10sr_dotfiles" -_current_date=`date` - -# TODO: how to give args to command? - - -################################################################# - -_dotfiles_url_base=https://raw.githubusercontent.com/10sr/dotfiles/master/ - -if test -z "$DOTFILES_DIR" -then - DOTFILES_DIR="$__dotfiles_dir_default" -fi - -ismsys= -iscygwin= -iswindows= - -isdarwin= -isfreebsd= -isbsd= - -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 - then - wget $__my_wget_options "$1" -O "$2" - 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 -} - -# Detect systems - -detect_systems(){ - ismsys=false - iscygwin=false - iswindows=false - - isdarwin=false - isfreebsd=false - isbsd=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 ;; - esac - ($ismsys || $iscygwin) && iswindows=true - # is this true? - ($isdarwin || $isfreebsd) && isbsd=true - _msg "Detecting the system...done" -} - -################################ -# setups - - -############################### -# setup selfupdate - -setup_selfupdate(){ - _msg "Download latest setup.sh from 10sr repository." - if test -z "$1" - then - _warn "Filename for setup script is not given" - echo "usage: setup.sh selfupdate " - _die "Abort" - fi - mkdir -vp "`dirname $1`" - _download $_dotfiles_url_base/setup.sh "$1" - chmod +x "$1" -} - - -################################## -# setup dotfiles - -setup_dotfiles(){ - _msg "Prepare latest dotfiles." - mkdir -p "$DOTFILES_DIR" - if test -d "$DOTFILES_DIR"/.git - then - # if git repository found, always skip - _warn "Git repository $DOTFILES_DIR already exists" - _warn "Skipping" - elif test "$1" = "--git" - then - # git clone - _msg "Option \"--git\" has been given. Using git" - _msg "Checking github.com connectivity" - ssh git@github.com 2>/dev/null && true - if test $? -eq 1 - then - _git_clone_url=git@github.com:10sr/dotfiles.git - _msg "Authentication succeeded" - else - _git_clone_url=https://github.com/10sr/dotfiles.git - _msg "Authentication failed" - fi - _msg "Git cloning $_git_clone_url" - git clone $_git_clone_url "$DOTFILES_DIR" - else - for f in $@ - do - _msg "Prepareing $f" - mkdir -p "`dirname $DOTFILES_DIR/$f`" - _download $_dotfiles_url_base/$f "$DOTFILES_DIR"/$f - done - fi -} - -############################# -# setup 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(){ - _msg "Generate $__shrc_common" - test -f "$__shrc_common" && rm -- "$__shrc_common" - - cat <<__EOC__ >"$__shrc_common" -#!/bin/sh - -# $__shrc_common -# Automatically generated by $0 at $_current_date - -ismsys=$ismsys -iscygwin=$iscygwin -iswindows=$iswindows - -isdarwin=$isdarwin -isfreebsd=$isfreebsd -isbsd=$isbsd - -islinux=$islinux - -__homelocal="$__homelocal" -__homevar="$__homevar" -__EOC__ -} - - -############################# -# setup tmux - -setup_tmux(){ - tmux_conf_local="$HOME/.tmux.conf.local" - _msg "Generate $tmux_conf_local" - - case "`hostname`" in - arch-aspireone) - tmux_bg_color=yellow - tmux_fg_color=black - ;; - arch-mba) - tmux_bg_color=cyan - tmux_fg_color=black - ;; - newkiwi) - tmux_bg_color=magenta - tmux_fg_color=white - ;; - debian-vb-win7-opti) - tmux_bg_color=red - tmux_fg_color=white - ;; - *) - tmux_bg_color=green - tmux_fg_color=black - ;; - esac - - cat <<__EOC__ >"$tmux_conf_local" -# $tmux_conf_local -# Automatically generated by $0 at $_current_date - -set -g status-right "${USER}@$(hostname) | #(tmux -V) " - -set -g status-bg $tmux_bg_color -set -g status-fg $tmux_fg_color -set -g mode-bg $tmux_bg_color -set -g mode-fg $tmux_fg_color -set -g pane-active-border-fg $tmux_bg_color -__EOC__ - - _tmux_conf="$HOME"/.tmux.conf - _msg "Prepare $_tmux_conf" - if test -f "$_tmux_conf" - then - _warn "Tmux config file found. Skipping" - else - echo "source \"$DOTFILES_DIR/tmux.conf\"" >>"$_tmux_conf" - fi - - setup_dotfiles tmux.conf -} - -############################### -# setup emacs - -setup_emacs(){ - _msg "Setup emacs init.el" - _emacs_dir="$HOME"/.emacs.d - mkdir -vp "$_emacs_dir" - - _emacs_init_el="$_emacs_dir"/init.el - - if test -f "$_emacs_init_el" - then - _warn "Emacs init.el found. Skipping" - else - cat <<__EOC__ >>"$_emacs_init_el" -(and (file-readable-p "$DOTFILES_DIR/emacs.el") - (load-file "$DOTFILES_DIR/emacs.el")) -__EOC__ - fi - - setup_dotfiles emacs.el -} - -################################## -# setup vim - -setup_vim(){ - _msg "Setup vimrc" - _vimrc="$HOME"/.vimrc - - if test -f "$_vimrc" - then - _warn "Vim rcfile found. Skipping" - else - cat <<__EOC__ >>"$_vimrc" -if filereadable(expand('$DOTFILES_DIR/vimrc')) - source $DOTFILES_DIR/vimrc -endif -__EOC__ - - fi - - setup_dotfiles vimrc -} - -############################## - -# setup scripts - -_fetch_script(){ - # _fetch_script - url="$1" - name="$2" - dst="$HOME/.local/bin/$name" - test -f "$dst" && return 0 - command -v "$name" >/dev/null && return 0 - if _download "$url" "$dst" - then - chmod u+x "$dst" - else - test -f "$dst" && rm -- "$dst" - fi -} - -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 - _fetch_script \ - http://beyondgrep.com/ack-2.12-single-file ack-2.12 -} - -################################ -# setup darwin - -__darwin_set_defaults(){ - $isdarwin || return 0 - - # http://appdrill.net/60641/mac-boot-mute.html - #sudo nvram SystemAudioVolume=%80 - - # add quit entry in menu - defaults write com.apple.finder QuitMenuItem -bool YES - # show full path on titlebar - defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES - # do not show desktop icons - defaults write com.apple.finder CreateDesktop -boolean false - - killall Finder - - # disable dashboard - #defaults write com.apple.dashboard mcx-disabled -bool YES -} - -__darwin_start_daemon(){ - $isdarwin || return 0 - - test "`launchctl getenv LC_ALL`" = C || sudo launchctl setenv LC_ALL C - if ! (launchctl list | grep com.apple.locate) >/dev/null - then - sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist - fi -} - -setup_darwin(){ - __darwin_set_defaults - __darwin_start_daemon -} - -########################## -# setup windirs - -setup_windirs(){ - $iswindows || return 0 - _msg "Setup some directories for windows environment" - - if $iscygwin - then - #__winhome="/cygdrive/c/Users/`whoami`" - __winhome=`cygpath -H`/`whoami` - fi - - 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 -} - -######################### -# setup dirs - -setup_dirs(){ - _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_tmux - setup_scripts - setup_dotfiles --git -} - - -######################### -# help and main - -help(){ - echo "Usage: ./setup.sh ..." - echo " or: ./setup.sh help" - echo "Available cmds are: $__setups" -} - -main(){ - detect_systems - - if test -z "$1" - then - help - return 1 - fi - - _cmd=$1 - shift - - if test "$_cmd" = help - then - help - return 0 - fi - - _msg Running setup_$_cmd - setup_$_cmd "$@" - _msg Running setup_$_cmd done -} - -main "$@"