From e07808421ab8c6a84d3ef1d24ea60734072e8af3 Mon Sep 17 00:00:00 2001 From: ViViDboarder Date: Tue, 3 Nov 2015 15:04:57 -0800 Subject: [PATCH] Refactor fish config for omf changes and provide better nosudo --- assets/default/fish-config/alias.fish | 46 +++++++++++++++++++ assets/default/fish-config/bundle | 11 +++++ assets/default/fish-config/init.fish | 2 + .../paths.load => fish-config/paths.fish} | 0 .../pkg}/force/completions/force.fish | 0 .../pkg}/notify-funcs/notify-failure.fish | 0 .../pkg}/notify-funcs/notify-result.fish | 0 .../pkg}/notify-funcs/notify-success.fish | 0 .../pkg}/port/completions/port.fish | 0 assets/default/fish-config/theme | 1 + .../themes/thefij/fish_prompt.fish | 0 .../themes/thefij/fish_right_prompt.fish | 0 assets/default/fish/custom/_omf-plugins.load | 13 ------ assets/default/fish/custom/alias.load | 46 ------------------- helpers/custom | 15 ++++-- helpers/default | 9 ++-- my-cookbook => master-cookbook | 3 +- no-sudo | 28 +++++++---- recipes/default/fish | 23 ---------- recipes/default/fish-config | 8 ++++ recipes/default/fish-install | 5 ++ recipes/default/neovim | 2 +- recipes/no-sudo/compile-install-vim | 31 +++++++++++++ recipes/no-sudo/fish-install | 14 ++++++ 24 files changed, 156 insertions(+), 101 deletions(-) create mode 100644 assets/default/fish-config/alias.fish create mode 100644 assets/default/fish-config/bundle create mode 100644 assets/default/fish-config/init.fish rename assets/default/{fish/custom/paths.load => fish-config/paths.fish} (100%) rename assets/default/{fish/custom/plugins => fish-config/pkg}/force/completions/force.fish (100%) rename assets/default/{fish/custom/plugins => fish-config/pkg}/notify-funcs/notify-failure.fish (100%) rename assets/default/{fish/custom/plugins => fish-config/pkg}/notify-funcs/notify-result.fish (100%) rename assets/default/{fish/custom/plugins => fish-config/pkg}/notify-funcs/notify-success.fish (100%) rename assets/default/{fish/custom/plugins => fish-config/pkg}/port/completions/port.fish (100%) create mode 100644 assets/default/fish-config/theme rename assets/default/{fish/custom => fish-config}/themes/thefij/fish_prompt.fish (100%) rename assets/default/{fish/custom => fish-config}/themes/thefij/fish_right_prompt.fish (100%) delete mode 100644 assets/default/fish/custom/_omf-plugins.load delete mode 100644 assets/default/fish/custom/alias.load rename my-cookbook => master-cookbook (97%) delete mode 100644 recipes/default/fish create mode 100644 recipes/default/fish-config create mode 100644 recipes/default/fish-install create mode 100644 recipes/no-sudo/compile-install-vim create mode 100644 recipes/no-sudo/fish-install diff --git a/assets/default/fish-config/alias.fish b/assets/default/fish-config/alias.fish new file mode 100644 index 0000000..abb242e --- /dev/null +++ b/assets/default/fish-config/alias.fish @@ -0,0 +1,46 @@ +# vim +alias nv='nvim' +alias tv='tmux-vim' +alias :q='exit' + +# git +alias ga='git add' +alias gc='git commit' +alias gco='git checkout' +alias gd='git diff' +alias gl='git log' +alias gr='git rebase' +alias gs='git status' +alias tiga='tig --all' + +# cd +alias cd..='cd ..' + +# vim +alias mviml='env VIM_COLOR=github mvim' + +# terminal-notifier +alias notify-done='terminal-notifier -message "Done"' +alias notify-success='terminal-notifier -message "Success"' +alias notify-fail='terminal-notifier -message "Failure"' + +# function sh-notify +# ($argv) ;and notify-success ;or notify-fail +# end + +# gl-notifire +alias gl-notify-done='gl-notifier "Done"' +alias gl-notify-success='gl-notifier "Success"' +alias gl-notify-fail='gl-notifier "Failure"' + +# function gl-notify +# ($argv) ;and gl-notify-success ;or gl-notify-fail +# end + +# gopush +alias pb-done='pb "Done"' +alias pb-success='pb "Success"' +alias pb-failure='pb "Failure"' +# function pb-notify +# ($argv) ;and pb-success ;or pb-failure +# end diff --git a/assets/default/fish-config/bundle b/assets/default/fish-config/bundle new file mode 100644 index 0000000..cc3e937 --- /dev/null +++ b/assets/default/fish-config/bundle @@ -0,0 +1,11 @@ +# package bak +# package balias +package export +package extract +package force +package jump +package notify-funcs +package osx +package pbcopy +package port +theme thefij diff --git a/assets/default/fish-config/init.fish b/assets/default/fish-config/init.fish new file mode 100644 index 0000000..30cb265 --- /dev/null +++ b/assets/default/fish-config/init.fish @@ -0,0 +1,2 @@ +source $OMF_CONFIG/paths.fish +source $OMF_CONFIG/alias.fish diff --git a/assets/default/fish/custom/paths.load b/assets/default/fish-config/paths.fish similarity index 100% rename from assets/default/fish/custom/paths.load rename to assets/default/fish-config/paths.fish diff --git a/assets/default/fish/custom/plugins/force/completions/force.fish b/assets/default/fish-config/pkg/force/completions/force.fish similarity index 100% rename from assets/default/fish/custom/plugins/force/completions/force.fish rename to assets/default/fish-config/pkg/force/completions/force.fish diff --git a/assets/default/fish/custom/plugins/notify-funcs/notify-failure.fish b/assets/default/fish-config/pkg/notify-funcs/notify-failure.fish similarity index 100% rename from assets/default/fish/custom/plugins/notify-funcs/notify-failure.fish rename to assets/default/fish-config/pkg/notify-funcs/notify-failure.fish diff --git a/assets/default/fish/custom/plugins/notify-funcs/notify-result.fish b/assets/default/fish-config/pkg/notify-funcs/notify-result.fish similarity index 100% rename from assets/default/fish/custom/plugins/notify-funcs/notify-result.fish rename to assets/default/fish-config/pkg/notify-funcs/notify-result.fish diff --git a/assets/default/fish/custom/plugins/notify-funcs/notify-success.fish b/assets/default/fish-config/pkg/notify-funcs/notify-success.fish similarity index 100% rename from assets/default/fish/custom/plugins/notify-funcs/notify-success.fish rename to assets/default/fish-config/pkg/notify-funcs/notify-success.fish diff --git a/assets/default/fish/custom/plugins/port/completions/port.fish b/assets/default/fish-config/pkg/port/completions/port.fish similarity index 100% rename from assets/default/fish/custom/plugins/port/completions/port.fish rename to assets/default/fish-config/pkg/port/completions/port.fish diff --git a/assets/default/fish-config/theme b/assets/default/fish-config/theme new file mode 100644 index 0000000..952a658 --- /dev/null +++ b/assets/default/fish-config/theme @@ -0,0 +1 @@ +thefij diff --git a/assets/default/fish/custom/themes/thefij/fish_prompt.fish b/assets/default/fish-config/themes/thefij/fish_prompt.fish similarity index 100% rename from assets/default/fish/custom/themes/thefij/fish_prompt.fish rename to assets/default/fish-config/themes/thefij/fish_prompt.fish diff --git a/assets/default/fish/custom/themes/thefij/fish_right_prompt.fish b/assets/default/fish-config/themes/thefij/fish_right_prompt.fish similarity index 100% rename from assets/default/fish/custom/themes/thefij/fish_right_prompt.fish rename to assets/default/fish-config/themes/thefij/fish_right_prompt.fish diff --git a/assets/default/fish/custom/_omf-plugins.load b/assets/default/fish/custom/_omf-plugins.load deleted file mode 100644 index dae7e23..0000000 --- a/assets/default/fish/custom/_omf-plugins.load +++ /dev/null @@ -1,13 +0,0 @@ -Theme "thefij" - -Plugin "theme" -Plugin "bak" -Plugin "balias" -Plugin "export" -Plugin "extract" -Plugin "jump" -Plugin "osx" -Plugin "pbcopy" -Plugin "port" -Plugin "force" -Plugin "notify-funcs" diff --git a/assets/default/fish/custom/alias.load b/assets/default/fish/custom/alias.load deleted file mode 100644 index e6ab97c..0000000 --- a/assets/default/fish/custom/alias.load +++ /dev/null @@ -1,46 +0,0 @@ -# vim -balias nv='nvim' -balias tv='tmux-vim' -balias :q='exit' - -# git -balias ga='git add' -balias gc='git commit' -balias gco='git checkout' -balias gd='git diff' -balias gl='git log' -balias gr='git rebase' -balias gs='git status' -balias tiga='tig --all' - -# cd -balias cd..='cd ..' - -# vim -balias mviml='env VIM_COLOR=github mvim' - -# terminal-notifier -balias notify-done='terminal-notifier -message "Done"' -balias notify-success='terminal-notifier -message "Success"' -balias notify-fail='terminal-notifier -message "Failure"' - -# function sh-notify -# ($argv) ;and notify-success ;or notify-fail -# end - -# gl-notifire -balias gl-notify-done='gl-notifier "Done"' -balias gl-notify-success='gl-notifier "Success"' -balias gl-notify-fail='gl-notifier "Failure"' - -# function gl-notify -# ($argv) ;and gl-notify-success ;or gl-notify-fail -# end - -# gopush -balias pb-done='pb "Done"' -balias pb-success='pb "Success"' -balias pb-failure='pb "Failure"' -# function pb-notify -# ($argv) ;and pb-success ;or pb-failure -# end diff --git a/helpers/custom b/helpers/custom index fd052b1..4cb0dac 100644 --- a/helpers/custom +++ b/helpers/custom @@ -6,22 +6,29 @@ function init_paths_and_vars { # Directory for projects - WORKSPACE=$HOME/workspace + WORKSPACE="$HOME/workspace" # This is in bashrc - USER_BIN=$HOME/bin + USER_BIN="$HOME/bin" + # Local prefix + LOCAL_PREFIX="$HOME/usr/local" # Temp dir for downloads - TMP_DIR=$PROJECT_DIR/tmp + TMP_DIR="$PROJECT_DIR/tmp" # System uname UNAME_STR=`uname` + # XGD_DATA + XDG_DATA_HOME="$HOME/.local/share" + # XGD_CONFIG + XDG_CONFIG_HOME="$HOME/.config" # Create workspace dir mkdir -p $WORKSPACE mkdir -p $USER_BIN mkdir -p $TMP_DIR + mkdir -p $XDG_DATA_HOME + mkdir -p $XDG_CONFIG_HOME } function source_dotfile { - local RC_PATH=$1 local RC_NAME=`basename $1` local SOURCE_CMD="source" diff --git a/helpers/default b/helpers/default index ba0262c..5123fbb 100644 --- a/helpers/default +++ b/helpers/default @@ -21,14 +21,13 @@ recipe () { CURRENT_RECIPE_NAME=$1 DEFAULT_ASSETS_PATH="$DIR/assets/default/$CURRENT_RECIPE_NAME" COOKBOOK_ASSETS_PATH="$DIR/assets/$COOKBOOK_NAME/$CURRENT_RECIPE_NAME" - local custom_recipe="$DIR/recipes/custom/$CURRENT_RECIPE_NAME" local default_recipe="$DIR/recipes/default/$CURRENT_RECIPE_NAME" + local cookbook_recipe="$DIR/recipes/$COOKBOOK_NAME/$CURRENT_RECIPE_NAME" - if [ -f $custom_recipe ]; then - log "Running recipe '$custom_recipe'..." 1 + if [ -f $cookbook_recipe ]; then + log "Running recipe '$cookbook_recipe'..." 1 separator - . $custom_recipe - + . $cookbook_recipe elif [ -f $default_recipe ]; then log "Running recipe '$default_recipe'..." 1 separator diff --git a/my-cookbook b/master-cookbook similarity index 97% rename from my-cookbook rename to master-cookbook index 35bfff4..b923d52 100755 --- a/my-cookbook +++ b/master-cookbook @@ -101,7 +101,8 @@ if $install_golang ; then fi if $install_fish ; then - recipe 'fish' + recipe 'fish-install' + recipe 'fish-config' set_installed 'fish' fi diff --git a/no-sudo b/no-sudo index 0c5d2f5..ebc64f0 100755 --- a/no-sudo +++ b/no-sudo @@ -11,12 +11,12 @@ cd $(dirname $0) PROJECT_DIR=$(pwd) +init_paths_and_vars + install_vim_src=false -if [ "$PACKAGE_MANAGER" == 'apt-get' ]; then - is_installed "vim-from-source" - if prompt_yn "Compile vim?" ; then - install_vim_src=true - fi +is_installed "vim-from-source" +if prompt_yn "Compile vim?" ; then + install_vim_src=true fi install_vim_settings=false if ! is_installed "vim-settings" || prompt_yn "Reinstall vim-settings?" ; then @@ -27,9 +27,11 @@ is_installed "salesforce" if prompt_yn "Install Salesforce tools?" ; then install_sfdc=true fi - -# Create workspace dir -mkdir -p ~/workspace +install_fish=false +is_installed "fish" +if prompt_yn "Install fish?" ; then + install_fish=true +fi ### Run recipes recipe 'dotfiles' @@ -51,6 +53,16 @@ if $install_sfdc ; then set_installed 'salesforce' fi +if $install_fish ; then + if ! command_exist fish ; then + recipe 'fish-install' + fi + if command_exist fish ; then + recipe 'fish-config' + set_installed 'fish' + fi +fi + ### Show the Finished banner finished diff --git a/recipes/default/fish b/recipes/default/fish deleted file mode 100644 index 5ef7da1..0000000 --- a/recipes/default/fish +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/bash - - -if ! command_exist fish ; then - sudo_package 'fish' -fi - -if [ ! -d $HOME/.oh-my-fish ]; then - curl -L https://github.com/bpinto/oh-my-fish/raw/master/tools/install.fish | fish -fi - -OMF_CUSTOM=$DEFAULT_ASSETS_PATH/custom -FISH_CONFIG=$HOME/.config/fish/config.fish - -if [ ! -f $FISH_CONFIG ]; then - touch $FISH_CONFIG -fi - -add_line 'set fish_path $HOME/.oh-my-fish' $FISH_CONFIG -add_line "set fish_custom $OMF_CUSTOM" $FISH_CONFIG -add_line '. $fish_path/oh-my-fish.fish' $FISH_CONFIG - -fish -c 'omf install' diff --git a/recipes/default/fish-config b/recipes/default/fish-config new file mode 100644 index 0000000..14ab8bc --- /dev/null +++ b/recipes/default/fish-config @@ -0,0 +1,8 @@ +#! /bin/bash + +local omf_config="$XDG_CONFIG_HOME/omf" +try_link "$DEFAULT_ASSETS_PATH" "$omf_config" + +if [ ! -d "$XDG_DATA_HOME/.omf" ]; then + curl -L https://github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish +fi diff --git a/recipes/default/fish-install b/recipes/default/fish-install new file mode 100644 index 0000000..f46e3fe --- /dev/null +++ b/recipes/default/fish-install @@ -0,0 +1,5 @@ +#! /bin/bash + +if ! command_exist fish ; then + sudo_package 'fish' +fi diff --git a/recipes/default/neovim b/recipes/default/neovim index 926e48a..0faee3d 100644 --- a/recipes/default/neovim +++ b/recipes/default/neovim @@ -22,7 +22,7 @@ if command_exist pip3 ; then sudo pip3 install neovim fi -neovim_dir=$WORKSPACE/neovim +local neovim_dir=$WORKSPACE/neovim if [ ! -d $neovim_dir ]; then log "Cloning neovim" diff --git a/recipes/no-sudo/compile-install-vim b/recipes/no-sudo/compile-install-vim new file mode 100644 index 0000000..57a8cb4 --- /dev/null +++ b/recipes/no-sudo/compile-install-vim @@ -0,0 +1,31 @@ +#!/bin/bash + +local vim_dir="$WORKSPACE/vim" + +# Build latest vim +if [ ! -d $vim_dir ]; then + hg clone https://vim.googlecode.com/ $vim_dir +fi + +# Go to workspace +cd $vim_dir + +# Use latest tagged source code +hg update -r 'max(tagged())' +# Configure vim with ruby, python and GTK +./configure --with-features=huge \ + --enable-pythoninterp \ + --enable-rubyinterp \ + --enable-gui=gtk2 \ + --prefix=$LOCAL_PREFIX + +# Compile +make +# Install newly compiled vim +make install +# Link vi to vim out of convenience +vim_path=$(which vim) +sudo ln -s $vim_path ${vim_path:0:(-1)} + +# Go back to previous directory +cd $ROOT_DIR diff --git a/recipes/no-sudo/fish-install b/recipes/no-sudo/fish-install new file mode 100644 index 0000000..6c1b2d4 --- /dev/null +++ b/recipes/no-sudo/fish-install @@ -0,0 +1,14 @@ +#! /bin/bash + +log "Compiling and installing fish-shell to local prefix" + +local fish_shell_dir=$WORKSPACE/fish-shell + +if [ ! -d $fish_shell_dir ]; then + log "Cloning fish-shell" + git clone https://github.com/fish-shell/fish-shell $fish_shell_dir +else + (cd $fish_shell_dir && git pull) +fi + +(cd $fish_shell_dir && ./configure --prefix=$LOCAL_PREFIX --disable-shared && make && make install)