diff --git a/ansible/ansible-base/playbook.yml b/ansible/ansible-base/playbook.yml index 48b82e0..04bb6a0 100644 --- a/ansible/ansible-base/playbook.yml +++ b/ansible/ansible-base/playbook.yml @@ -4,3 +4,7 @@ roles: - packages - configs + + - hosts: playgs + roles: + - coding_vim diff --git a/ansible/ansible-base/roles/coding_vim/files/omb-bashrc b/ansible/ansible-base/roles/coding_vim/files/omb-bashrc new file mode 100644 index 0000000..be4531b --- /dev/null +++ b/ansible/ansible-base/roles/coding_vim/files/omb-bashrc @@ -0,0 +1,102 @@ +# Path to your oh-my-bash installation. +export OSH=/root/.oh-my-bash + +# Set name of the theme to load. Optionally, if you set this to "random" +# it'll load a random theme each time that oh-my-bash is loaded. +OSH_THEME="90210" + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_OSH_DAYS=13 + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $OSH/custom? +# OSH_CUSTOM=/path/to/new-custom-folder + +# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*) +# Custom completions may be added to ~/.oh-my-bash/custom/completions/ +# Example format: completions=(ssh git bundler gem pip pip3) +# Add wisely, as too many completions slow down shell startup. +completions=( + git + composer + ssh +) + +# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*) +# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/ +# Example format: aliases=(vagrant composer git-avh) +# Add wisely, as too many aliases slow down shell startup. +aliases=( + general +) + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*) +# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + git + bashmarks +) + +source $OSH/oh-my-bash.sh + +# User configuration +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# ssh +# export SSH_KEY_PATH="~/.ssh/rsa_id" + +# Set personal aliases, overriding those provided by oh-my-bash libs, +# plugins, and themes. Aliases can be placed here, though oh-my-bash +# users are encouraged to define aliases within the OSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias bashconfig="mate ~/.bashrc" +# alias ohmybash="mate ~/.oh-my-bash" + diff --git a/ansible/ansible-base/roles/coding_vim/files/vimrc b/ansible/ansible-base/roles/coding_vim/files/vimrc new file mode 100644 index 0000000..9fa6cc0 --- /dev/null +++ b/ansible/ansible-base/roles/coding_vim/files/vimrc @@ -0,0 +1,40 @@ +set nocompatible " be iMproved, required +filetype off " required + +"===================================================== +" Vundle settings +"===================================================== +" set the runtime path to include Vundle and initialize +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +Plugin 'gmarik/Vundle.vim' " let Vundle manage Vundle, required + +"---------=== Code/project navigation ===------------- +Plugin 'scrooloose/nerdtree' " Project and file navigation +Plugin 'majutsushi/tagbar' " Class/module browser + +"------------------=== Other ===---------------------- +Plugin 'bling/vim-airline' " Lean & mean status/tabline for vim +Plugin 'fisadev/FixedTaskList.vim' " Pending tasks list +Plugin 'rosenfeld/conque-term' " Consoles as buffers +Plugin 'tpope/vim-surround' " Parentheses, brackets, quotes, XML tags, and more + +"--------------=== Snippets support ===--------------- +"Plugin 'garbas/vim-snipmate' " Snippets manager +Plugin 'MarcWeber/vim-addon-mw-utils' " dependencies #1 +Plugin 'tomtom/tlib_vim' " dependencies #2 +Plugin 'honza/vim-snippets' " snippets repo + +"---------------=== Languages support ===------------- +" --- Python --- +Plugin 'klen/python-mode' " Python mode (docs, refactor, lints, highlighting, run and ipdb and more) +Plugin 'davidhalter/jedi-vim' " Jedi-vim autocomplete plugin +Plugin 'mitsuhiko/vim-jinja' " Jinja support for vim +Plugin 'mitsuhiko/vim-python-combined' " Combined Python 2/3 for Vim + +call vundle#end() " required +filetype on +filetype plugin on +filetype plugin indent on + diff --git a/ansible/ansible-base/roles/coding_vim/tasks/main.yml b/ansible/ansible-base/roles/coding_vim/tasks/main.yml new file mode 100644 index 0000000..f1f5ed2 --- /dev/null +++ b/ansible/ansible-base/roles/coding_vim/tasks/main.yml @@ -0,0 +1,6 @@ +--- + + - name: Put vim config + template: + src: files/vimrc + dest: /etc/vimrc diff --git a/ansible/ansible-base/roles/configs/files/bashrc b/ansible/ansible-base/roles/configs/files/bashrc new file mode 100644 index 0000000..351fb59 --- /dev/null +++ b/ansible/ansible-base/roles/configs/files/bashrc @@ -0,0 +1,118 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi + diff --git a/ansible/ansible-base/roles/configs/files/screenrc b/ansible/ansible-base/roles/configs/files/screenrc index 062bef7..d0a2233 100644 --- a/ansible/ansible-base/roles/configs/files/screenrc +++ b/ansible/ansible-base/roles/configs/files/screenrc @@ -8,4 +8,3 @@ defscrollback 10000 hardstatus alwayslastline hardstatus string '%{= kG}[ %{G}%H %{g} - %S ][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d.%m %{W}%c %{g}]' - diff --git a/ansible/ansible-base/roles/configs/tasks/main.yml b/ansible/ansible-base/roles/configs/tasks/main.yml index 61943b9..a42d4a0 100644 --- a/ansible/ansible-base/roles/configs/tasks/main.yml +++ b/ansible/ansible-base/roles/configs/tasks/main.yml @@ -26,6 +26,18 @@ msg: 'OMB is not installed, run: bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"' when: not omb_flag.stat.exists + - name: Put simple bashrc config + template: + src: files/bashrc + dest: "{{ ansible_user_dir }}/.bashrc" + when: not omb_flag.stat.exists + + - name: Put omb config + template: + src: files/omb-bashrc + dest: "{{ ansible_user_dir }}/.bashrc" + when: omb_flag.stat.exists + # FIXME: logout from shell # - name: Install OMB # shell: bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"