Commit 69e6637d authored by Seblu's avatar Seblu
Browse files

Add config-seblu

parent 3b694c3e
Loading
Loading
Loading
Loading

config-seblu/PKGBUILD

0 → 100644
+30 −0
Original line number Diff line number Diff line
# Maintainer: Sébastien Luttringer <seblu.seblu.net>

pkgname=config-seblu
pkgver=$(date +%Y.%m.%d)
pkgrel=1
pkgdesc='Provide seblu basic hosts configuration'
arch=('any')
license=('GPL2')
install=$pkgname.install
source=('git+ssh://seblu@seblu.net:2222/~/git/configs')
md5sums=('SKIP')
depends=('sed' 'diffutils')

package() {
  install -dm755 "$pkgdir"/{etc/sysctl.d,usr/share/$pkgname}
  # disable default sysctl options provided by systemd
  ln -s /dev/null "$pkgdir/etc/sysctl.d/50-default.conf"
  # install defaults configs files
  cd "$srcdir/configs"
  _d="$pkgdir/usr/share/$pkgname"
  install -Dm644 systemd/{vconsole,locale}.conf "$_d"
  install -Dm644 systemd/sysctl.d/seblu.net.conf "$_d"
  install -Dm644 pam/{issue,motd} "$_d"
  install -Dm644 zsh/zshrc "$_d"
  install -Dm644 e2fsprogs/e2fsk.conf "$_d"
  install -Dm644 ntp/ntp.conf "$_d"
  install -Dm644 vim/seblu.vim "$_d"
}

# vim:set ts=2 sw=2 et:
+64 −0
Original line number Diff line number Diff line
# vim:set ts=2 sw=2 et:

# $1: the file to update
check_file() {
  local p="/usr/share/config-seblu/${1##*/}"
  [[ -n "$2" ]] && p="/usr/share/config-seblu/$2"
  if [[ ! -e "$1" ]] || ! diff "$1" "$p" >/dev/null; then
    cp -f -v "$p" "$1"
  fi
}

# $1: the link target
# $2: the link himself
check_link() {
  _ct="$(readlink "$2")"
  if (( $? != 0 )) || [[ "$_ct" != "$1" ]]; then
    ln -vsnf "$1" "$2"
  fi
}

# arg 1:  the new package version
post_install() {
  check_file /etc/motd
  check_file /etc/issue
  check_file /etc/vconsole.conf
  check_file /etc/locale.conf
  check_file /etc/ntp.conf
  check_file /etc/e2fsk.conf
  check_file /etc/sysctl.d/seblu.net.conf
  check_file /etc/zsh/zshrc zshrc

  # enable vim config
  check_file /usr/share/vim/vimfiles/seblu.vim
  if ! grep -q 'runtime! seblu.vim' /etc/vimrc; then
    echo '-- Updating /etc/vimrc'
    echo 'runtime! seblu.vim' >> /etc/vimrc
  fi

  # localtime
  check_link '/usr/share/zoneinfo/Europe/Paris' /etc/localtime

  # locales
  _md5="$(md5sum /etc/locale.gen)"
  sed -ri 's/#(en_US|fr_FR)/\1/' /etc/locale.gen
  [[ "$_md5" != "$(md5sum /etc/locale.gen)" ]] && locale-gen

  # check full hostname
  grep -q \. /etc/hostname || echo '!! /etc/hostname without FQDN'

  # sbin must be a symlink
  if [[ ! -L /usr/local/sbin ]]; then
    echo '!! /usr/local/sbin is not a symlink'
    rmdir '/usr/local/sbin' && ln -sn bin /usr/local/sbin
  fi

  return 0
}

# arg 1:  the new package version
# arg 2:  the old package version
post_upgrade() {
  post_install "$1"
}