From d541eef923c24bf0983465c57c93504db3476985 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 13 Jan 2014 22:05:23 -0500 Subject: [PATCH] [WIP] Add install and uninstall scripts --- tools/go.sh | 57 ++++++++++++++++++++++++++ tools/install.zsh | 97 +++++++++++++++++++++++++++++++++++++++++++++ tools/uninstall.zsh | 1 + 3 files changed, 155 insertions(+) create mode 100644 tools/go.sh create mode 100755 tools/install.zsh create mode 100755 tools/uninstall.zsh diff --git a/tools/go.sh b/tools/go.sh new file mode 100644 index 00000000..2729c82b --- /dev/null +++ b/tools/go.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +clear +echo "" + +hash zsh 2>/dev/null || { + echo "\033[0;31mFailed : ZSH is missing\033[0m" + echo " ➥ Prezto does not work without ZSH. Install it first." + echo "" + exit +} + +if [ -d ~/.zprezto ] +then + echo "\033[0;33mYou already have prezto installed.\033[0m Upgrading..." + cd ~/.zprezto + # git pull && git submodule update --init --recursive + /usr/bin/env git add . + /usr/bin/env git commit --all --message "Commit changes before upgrade" --quiet + /usr/bin/env git pull --recurse-submodules + /usr/bin/env git submodule update + exit +fi + +echo "\033[0;34mCloning prezto...\033[0m" +hash git >/dev/null && /usr/bin/env git clone --recursive https://github.com/loranger/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" >/dev/null 2>&1 || { + echo "\033[0;31mFailed : Git is not installed\033[0m" + os=`uname` + if [ "$os" == 'Linux' ]; then + url='http://git-scm.com/download/linux' + elif [ "$os" == 'Darwin' ]; then + url='http://brew.sh/' + else + url='http://git-scm.com/' + fi + + echo " ➥ You should really take a look at $url" + exit +} + +for file in $HOME/.zprezto/runcoms/z* +do + rcfile=`basename $file` + if [ -f $HOME/.$rcfile ] || [ -h $HOME/.$rcfile ] + then + echo "\033[0;33mFound ~/.$rcfile file.\033[0m \033[0;32mMoved to ~/.$rcfile.old\033[0m"; + mv $HOME/.$rcfile $HOME/.$rcfile.old; + fi + ln -s $file $HOME/.$rcfile +done + +echo "\033[0;32mPrezto is ready\033[0m" + +echo "\033[0;34mNow set zsh as your default shell by typing :\033[0m" +echo "chsh -s $(which zsh)" +echo "\033[0;34mand start a new term.\033[0m" +# https://raw2.github.com/loranger/prezto/master/go.sh diff --git a/tools/install.zsh b/tools/install.zsh new file mode 100755 index 00000000..97cb60aa --- /dev/null +++ b/tools/install.zsh @@ -0,0 +1,97 @@ +#!/bin/zsh + +script_name="${0:t}" +script_version='1.0.0' +cached_argv="${argv}" +backup_dir="$HOME/.prezto-backup/$(date +'%Y-%m-%d-%H-%M-%S')" + +# Writes to standard error. +function print-error { + print "${script_name}: ${@}" >&2 +} + +# Writes to standard output. +function print-info { + print "${@}" >&1 +} + +# Writes version information to standard errror. +function version { + print "${script_name} ${script_version} + +Copyright (c) 2013 Sorin Ionescu + +This program is free software. You may modify or distribute it +under the terms of the MIT License." >&2 +} + +# Writes help to standard error. +function help { + print "Usage: ${script_name} [‐option ...] archive [directory] + +Options: + -v, --version Display version and copyright + -h, --help Display this help + +Report bugs to ." >&2 +} + +# Backs up existing files. +function backup { + local from="$1" + local to="$2" + + if [[ ! -e "$from" ]]; then + return + fi + + mkdir -p "$to:h" + mv "$from" "$to" +} + +# Parse switches. +while [[ "${1}" == -* ]]; do + case "${1}" in + ( -v | --version ) + version + exit 0 + ;; + ( -h | --help ) + help + exit 0 + ;; + ( -- ) + shift + break + ;; + ( -* ) + print-error "invalid option: ${1}" + help + exit 0 + ;; + esac +done + +git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" +setopt EXTENDED_GLOB +for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do + ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" +done +chsh -s /bin/zsh + +is-true "$use_color" && printf "$FG[green]" +printf '%s' \ +'________ _____ +___ __ \___________________ /______ +__ /_/ /_ ___/ _ \__ /_ __/ __ \ +_ ____/_ / / __/_ /_/ /_ / /_/ / +/_/ /_/ \___/_____/\__/ \____/ +' +is-true "$use_color" && printf "$FG[cyan]" +print +print 'Prezto has been updated to the latest version.' +print 'Follow me on GitHub at https://github.com/sorin-ionescu/prezto.' + +exec zsh + + diff --git a/tools/uninstall.zsh b/tools/uninstall.zsh new file mode 100755 index 00000000..f7df9c27 --- /dev/null +++ b/tools/uninstall.zsh @@ -0,0 +1 @@ +#!/bin/zsh