Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.33 KB | None | 0 0
  1. #!/bin/sh -e
  2.  
  3. case "$1" in
  4.     configure)
  5.     . /usr/share/debconf/confmodule
  6.  
  7.     #only create a user if they don't already exist
  8.     if ! getent passwd mythtv 1>/dev/null; then
  9.         adduser --quiet --system --group --disabled-password --system \
  10.             --shell /bin/sh mythtv
  11.     fi
  12.     HOMEDIR=$(getent passwd mythtv | awk -F: '{ print $6 }')
  13.  
  14.     adduser --quiet mythtv video
  15.     adduser --quiet mythtv audio
  16.     adduser --quiet mythtv cdrom
  17.     adduser --quiet mythtv dialout
  18.  
  19.     db_get mythtv/mysql_host
  20.     hostname="$RET"
  21.     export hostname
  22.  
  23.     db_get mythtv/mysql_mythtv_dbname
  24.     database="$RET"
  25.     export database
  26.  
  27.     db_get mythtv/mysql_mythtv_user
  28.     mythtv_username="$RET"
  29.     export mythtv_username
  30.  
  31.     db_get mythtv/mysql_mythtv_password
  32.     if [ -z "$RET" ]; then
  33.         mythtv_password="$(pwgen -s 8)"
  34.         db_set mythtv/mysql_mythtv_password "$mythtv_password"
  35.         db_subst mythtv/display_password password "$mythtv_password"
  36.         db_input high mythtv/display_password || true
  37.         db_go || true
  38.     else
  39.         mythtv_password="$RET"
  40.     fi
  41.     export mythtv_password
  42.  
  43.     NEW=$(mktemp -t mysql.txt-XXXXXX)
  44.     if [ -s /etc/mythtv/mysql.txt ]; then
  45.         INPUT=/etc/mythtv/mysql.txt
  46.         chown --reference="$INPUT" "$NEW"
  47.         chmod --reference="$INPUT" "$NEW"
  48.     else
  49.         INPUT=/usr/share/mythtv/mysql.txt.dist
  50.         chown mythtv:mythtv "$NEW"
  51.         chmod 660 "$NEW"
  52.     fi
  53.  
  54.     cat $INPUT | grep -v 'DBPassword=' | sed -e "
  55. s/^\(\(str  *\)\?DBHostName\)=.*$/\1=$hostname/g;
  56. s/^\(\(str  *\)\?DBUserName\)=.*$/\1=$mythtv_username/g;
  57. s/^\(\(str  *\)\?DBName\)=.*$/\1=$database/g;" > $NEW
  58.         cat <<EOF >> $NEW
  59. DBPassword=$mythtv_password
  60. EOF
  61.  
  62.     mv $NEW /etc/mythtv/mysql.txt
  63.  
  64.     NEW=$(mktemp -t config.xml-XXXXXX)
  65.     if [ -s /etc/mythtv/config.xml ]; then
  66.         INPUT=/etc/mythtv/config.xml
  67.         chown --reference="$INPUT" "$NEW"
  68.         chmod --reference="$INPUT" "$NEW"
  69.     else
  70.         INPUT=/usr/share/mythtv/config.xml
  71.         chown mythtv:mythtv "$NEW"
  72.         chmod 660 "$NEW"
  73.     fi
  74.  
  75.     cat $INPUT > $NEW
  76.  
  77.     perl -pi -e 's/(<DBHostName>).*?(<\/DBHostName>)/$1$ENV{'hostname'}$2/;' $NEW
  78.     perl -pi -e 's/(<DBUserName>).*?(<\/DBUserName>)/$1$ENV{'mythtv_username'}$2/;' $NEW
  79.     perl -pi -e 's/(<DBPassword>).*?(<\/DBPassword>)/$1$ENV{'mythtv_password'}$2/;' $NEW
  80.     perl -pi -e 's/(<DBName>).*?(<\/DBName>)/$1$ENV{'database'}$2/;' $NEW
  81.     perl -pi -e 's/^\s+<LocalHostName>.*?<\/LocalHostName>\n//m;' $NEW
  82.  
  83.     mv $NEW /etc/mythtv/config.xml
  84.  
  85.     mkdir -p /root/.mythtv || true
  86.     mkdir -p $HOMEDIR/.mythtv || true
  87.     chown mythtv:mythtv $HOMEDIR/.mythtv || true
  88.  
  89.     if [ ! -e /root/.mythtv/config.xml ]; then
  90.         ln -s /etc/mythtv/config.xml /root/.mythtv/config.xml || true
  91.     fi
  92.  
  93.     if [ ! -e $HOMEDIR/.mythtv/config.xml ]; then
  94.         ln -s /etc/mythtv/config.xml $HOMEDIR/.mythtv/config.xml || true
  95.     fi
  96.  
  97.     if [ ! -e $HOMEDIR/.mythtv/mysql.txt ]; then
  98.         ln -s /etc/mythtv/mysql.txt $HOMEDIR/.mythtv/mysql.txt || true
  99.     fi
  100.  
  101.  
  102.  
  103.     ;;
  104.  
  105.     abort-upgrade|abort-remove|abort-deconfigure)
  106.  
  107.     ;;
  108.  
  109.     *)
  110.     echo "postinst called with unknown argument \`$1'" >&2
  111.     db_set mythtv/mysql_mythtv_password ""
  112.     exit 1
  113.     ;;
  114. esac
  115.  
  116.  
  117.  
  118. db_set mythtv/mysql_mythtv_password ""
  119. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement