Skip to content

Commit

Permalink
manage root dotfiles
Browse files Browse the repository at this point in the history
  • Loading branch information
rrotter committed Jan 3, 2025
1 parent 3f92590 commit 9702a42
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 0 deletions.
29 changes: 29 additions & 0 deletions files/root/.bashrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This file is managed by puppet.
#
# Everything in this file is lightly adapted from default Debian or Ubuntu
# .bashrc. It's not meant to be opinionated, we don't keep bikes in the
# datacenter, so we'll need no sheds. This file exists purely for quality of
# life in the rare case we login as root. DO NOT PUT ANYTHING IN THIS FILE THAT
# IS ACTUALLY CRITICAL TO MAKE A SYSTEM WORK. If ANYTHING in this file offends
# your sensibilities, change it and file a PR.

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

# color, abbreviation
COLOR_OPTIONS='--color=auto'
eval "$(dircolors)"
alias l='ls'
alias ls='ls $COLOR_OPTIONS'
alias ll='ls $COLOR_OPTIONS -l'
alias la='ls $COLOR_OPTIONS -A'
alias lla='ls $COLOR_OPTIONS -lA'
alias grep='grep $COLOR_OPTIONS'
alias fgrep='fgrep $COLOR_OPTIONS'
alias egrep='egrep $COLOR_OPTIONS'

# 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 9702a42

Please sign in to comment.