From dcb1137e3ac46f1c3d843cbd43acd4565c59e704 Mon Sep 17 00:00:00 2001 From: L3D Date: Thu, 15 Nov 2018 10:26:52 +0100 Subject: [PATCH] Add some dotfiles --- files/bash.bashrc | 98 +++++++++++++++++++++++++++++++++++++++++++++++ files/bashrc | 19 +++++++++ files/vimrc | 8 ++++ tasks/main.yml | 42 ++++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 files/bash.bashrc create mode 100644 files/bashrc create mode 100644 files/vimrc create mode 100644 tasks/main.yml diff --git a/files/bash.bashrc b/files/bash.bashrc new file mode 100644 index 0000000..d20e9dc --- /dev/null +++ b/files/bash.bashrc @@ -0,0 +1,98 @@ +# /etc/bashrc + +# System wide functions and aliases +# Environment stuff goes in /etc/profile + +# It's NOT a good idea to change this file unless you know what you +# are doing. It's much better to create a custom.sh shell script in +# /etc/profile.d/ to make custom changes to your environment, as this +# will prevent the need for merging in future updates. + +# Prevent doublesourcing +if [ -z "$BASHRCSOURCED" ]; then + BASHRCSOURCED="Y" + + # are we an interactive shell? + if [ "$PS1" ]; then + if [ -z "$PROMPT_COMMAND" ]; then + case $TERM in + xterm*|vte*) + if [ -e /etc/sysconfig/bash-prompt-xterm ]; then + PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm + elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then + PROMPT_COMMAND="__vte_prompt_command" + else + PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' + fi + ;; + screen*) + if [ -e /etc/sysconfig/bash-prompt-screen ]; then + PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen + else + PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' + fi + ;; + *) + [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default + ;; + esac + fi + # Turn on parallel history + shopt -s histappend + history -a + # Turn on checkwinsize + shopt -s checkwinsize + [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " + # You might want to have e.g. tty in prompt (e.g. more virtual machines) + # and console windows + # If you want to do so, just add e.g. + if [ "$PS1" ]; then + PS1='$(if [[ $(id -u) -ne 0 ]];then echo "\[\033[01;33m\]"; else echo "\[\033[01;31m\]"; fi) $(if [[ $? == 0 ]]; then printf "\xE2\x9D\xA4"; fi) \[\033[01;32m\]\u\[\033[01;36m\]@\[\033[01;32m\]\H\[\033[01;34m\] <\A> \[\033[01;35m\] \j \[\033[01;36m\] \w \[\033[01;33m\]\n\[\033[01;33m\] $(git branch 2>/dev/null | sed -n "s/* \(.*\)/\1 /p")$\[\033[01;00m\] ' + fi + # to your custom modification shell script in /etc/profile.d/ directory + fi + + if ! shopt -q login_shell ; then # We're not a login shell + # Need to redefine pathmunge, it gets undefined at the end of /etc/profile + pathmunge () { + case ":${PATH}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ] ; then + PATH=$PATH:$1 + else + PATH=$1:$PATH + fi + esac + } + + # By default, we want umask to get set. This sets it for non-login shell. + # Current threshold for system reserved uid/gids is 200 + # You could check uidgid reservation validity in + # /usr/share/doc/setup-*/uidgid file + if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then + umask 002 + else + umask 022 + fi + + SHELL=/bin/bash + # Only display echos from profile.d scripts if we are no login shell + # and interactive - otherwise just process them to set envvars + for i in /etc/profile.d/*.sh; do + if [ -r "$i" ]; then + if [ "$PS1" ]; then + . "$i" + else + . "$i" >/dev/null + fi + fi + done + + unset i + unset -f pathmunge + fi + +fi +# vim:ts=4:sw=4 diff --git a/files/bashrc b/files/bashrc new file mode 100644 index 0000000..e17684e --- /dev/null +++ b/files/bashrc @@ -0,0 +1,19 @@ +# .bashrc + +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi + +# User specific environment +PATH="$HOME/.local/bin:$HOME/bin:$PATH" +export PATH + +# Uncomment the following line if you don't like systemctl's auto-paging feature: +# export SYSTEMD_PAGER= + +PS1='$(if [[ $(id -u) -ne 0 ]];then echo "\[\033[01;33m\]"; else echo "\[\033[01;31m\]"; fi) $(if [[ $? == 0 ]]; then printf "\xE2\x9D\xA4"; fi) \[\033[01;32m\]\u\[\033[01;36m\]@\[\033[01;32m\]\H\[\033[01;34m\] <\A> \[\033[01;35m\] \j \[\033[01;36m\] \w \[\033[01;33m\]\n\[\033[01;33m\] $(git branch 2>/dev/null | sed -n "s/* \(.*\)/\1 /p")$\[\033[01;00m\] ' + +# User specific aliases and functions +alias ll="ls -all" + diff --git a/files/vimrc b/files/vimrc new file mode 100644 index 0000000..9f7a9d7 --- /dev/null +++ b/files/vimrc @@ -0,0 +1,8 @@ +set expandtab +set tabstop=4 +set shiftwidth=4 +set fileencoding=utf-8 +set encoding=utf-8 +colorscheme elflord +syntax on +set mouse-=a diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..391a4a5 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,42 @@ +--- +- name: install the latest libselinux-python package + dnf: + name: libselinux-python + state: latest + when: ansible_distribution == "Fedora" + +- name: Create a global bashrc configuration + copy: + src: 'files/bash.bashrc' + dest: '/etc/bash.bashrc' + owner: root + group: root + mode: 'u=rw,g=r,o=r' + +- name: Copy bashrc configuration to admin users + copy: + src: 'files/bashrc' + dest: '/home/{{ item }}/.bashrc' + owner: '{{ item }}' + group: wheel + mode: 'u=rw,g=r,o=' + with_items: '{{ admins }}' + +- name: Copy vimrc configuration to root + copy: + src: 'files/vimrc' + dest: '/root/.vimrc' + owner: root + group: root + mode: 'u=rw,g=r,o=' + +- name: Copy vimrc configuration to admin users + copy: + src: 'files/vimrc' + dest: '/home/{{ item }}/.vimrc' + owner: '{{ item }}' + group: wheel + mode: 'u=rw,g=r,o=' + with_items: "{{ admins }}" + +