patched prcopyleft

Matteo Guglielmi <[email protected]>
Newsgroups gmane.linux.debian.fai
Message-ID <[email protected]>
This patched version of prcopyleft will automatically center the header
text and make use of the full console width.


cheers.


###########################################
### /srv/fai/nfsroot/lib/fai/prcopyleft ###
###########################################

#!/bin/bash

#*********************************************************************
#
# This script is part of FAI (Fully Automatic Installation)
# (c) 2003-2018 by Thomas Lange, [email protected]
# Universitaet zu Koeln
#
#*********************************************************************

# variables needed: FAI_VERSION, do_init_tasks

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_repeatstring() {
  local str=$1
  local len=$2

  len=$(seq 1 $len)

  [ -z "$len" ] || printf -- "$str%.0s" $len
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_prcopyleft() {
  local devcon=/dev/console
  local rows cols edge empty MSG
  local i j msg len diff half mod lx rx

  read rows cols < <(stty size < $devcon)

  edge="+$(_repeatstring - $[cols - 2])+"
  empty="|$(_repeatstring ' ' $[cols - 2])|"
  MSG=("Fully Automatic Installation  -  FAI"
       "$FAI_VERSION  (c) 1999-2020"
       "Thomas Lange  <[email protected]>")

  echo "$edge"

  for ((i=0, j=1; i<${#MSG[@]}; i++, j++)); do
    msg=${MSG[$i]}
    len=${#msg}
    diff=$[cols - len]
    half=$[diff / 2]
    mod=$[diff % 2]
    lx="|$(_repeatstring ' ' $[half - 1])"
    rx=$(_repeatstring ' ' $mod)$(echo "$lx" | rev)
    msg=$lx$msg$rx

    echo "$msg"

    [ $j -lt ${#MSG[@]} ] && echo "$empty" || echo "$edge"
  done
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# color logo only if initial install
color_logo=$do_init_tasks

# set red color, but not on some archs
[ -e /.nocolorlogo ] && color_logo=0
[ -n "$console" ] && color_logo=0  # no red logo if console was defined on the command line
case $HOSTTYPE in
  sparc*|powerpc*) color_logo=0 ;;
esac

[ $color_logo -eq 1 ] && echo -ne "\ec\e[1;31m"

_prcopyleft | tee -a $LOGDIR/fai.log

if [ $color_logo -eq 1 ]; then
  echo -ne "\e[8;0r"
  echo -ne "\e[9B\e[1;m"
fi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.