Browse Source

Remove setup.sh

pull/5/head
10sr 9 years ago
parent
commit
3d0927b28c
2 changed files with 0 additions and 441 deletions
  1. +0
    -3
      README.md
  2. +0
    -438
      setup.sh

+ 0
- 3
README.md View File

@@ -30,9 +30,6 @@ bash prompt.
Get Latest Makefile 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 Issue


curl -L j.mp/10sr_make | make -f - curl -L j.mp/10sr_make | make -f -


+ 0
- 438
setup.sh View File

@@ -1,438 +0,0 @@
#!/bin/sh
set -e

# setup.sh --- 10sr setup script
# 2014, 10sr. Unlicensed <http://unlicense.org>

__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 <url> <file>
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 <filename>"
_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> <binname>
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 <cmd> ..."
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 "$@"

Loading…
Cancel
Save