Skip to content

Commit

Permalink
manage root dotfiles
Browse files Browse the repository at this point in the history
- .bash_profile: delete this if it exists
- .profile: verbatim from Debian
- .bashrc: enable ls and grep color, ls aliases
  • Loading branch information
rrotter committed Jan 3, 2025
1 parent 3f92590 commit 353c376
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 0 deletions.
27 changes: 27 additions & 0 deletions files/root/.bashrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# This file is managed by puppet.
#
# This file exists purely for quality of life in the rare case we log in as
# root. If there is any disagreement on what's comfy, we should feel free to
# delete anything and revert to defaults.
#
# DO NOT PUT ANYTHING IN THIS FILE THAT IS ACTUALLY CRITICAL TO MAKE A SYSTEM
# WORK. THESE ARE ONLY CREATURE COMFORTS.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# color, abbreviation
eval "$(dircolors)"
alias ls='ls --color=auto'
alias l='ls -F'
alias ll='ls -lh'
alias la='ls -AF'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

# history
HISTCONTROL=ignoredups:ignorespace
shopt -s histappend
HISTSIZE=10000
HISTFILESIZE=10000
12 changes: 12 additions & 0 deletions files/root/.profile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# This file is managed by puppet. It is the debian/ubuntu stock `.profile`,
# with no modification beyond this comment.
#
# Don't override this with .bash_profile, as it is automatically deleted.

if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi

mesg n 2> /dev/null || true
24 changes: 24 additions & 0 deletions manifests/profile/root.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# nebula::profile::root
#
# configure root's home directory
#
# @example
# include nebula::profile::root
class nebula::profile::root (
Boolean $manage = true,
) {
if ($manage) {
file { '/root/':
ensure => directory,
mode => '0700',
source => 'puppet:///modules/nebula/root/',
source_permissions => use,
recurse => remote,
purge => false,
}

file { '/root/.bash_profile':
ensure => absent
}
}
}
1 change: 1 addition & 0 deletions manifests/role/minimum.pp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
include nebula::profile::authorized_keys
include nebula::profile::known_host_public_keys
include nebula::profile::falcon
include nebula::profile::root

class { 'nebula::profile::networking::firewall':
internal_routing => $internal_routing,
Expand Down
20 changes: 20 additions & 0 deletions spec/classes/profile/root_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# frozen_string_literal: true

require "spec_helper"

describe "nebula::profile::root" do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }

it {
is_expected.to contain_file("/root/")
.with(recurse: "remote", purge: false, source_permissions: "use")
}
it {
is_expected.to contain_file("/root/.bash_profile")
.with(ensure: "absent")
}
end
end
end

0 comments on commit 353c376

Please sign in to comment.