summaryrefslogtreecommitdiff
path: root/iso/bin/setup-helper
blob: 5936bdf09550386990a118b2f9337b4ea1c164e7 (plain)
    1 #!/bin/bash
    2 # post setup
    3 #
    4 # Johannes Winkelmann, jw at tks6 dot net
    5 
    6 ROOT=$1
    7 DB=$ROOT/var/lib/pkg/db
    8 
    9 ## those values should be changed:
   10 TMPDB=$DB.tmp
   11 BACKUPDB=$DB.backup
   12 PKGADD="pkgadd"
   13 PKGRM="pkgrm"
   14 MV="mv"
   15 
   16 
   17 is_installed() {
   18     printf "%s" $(pkginfo -r $ROOT -i | gawk -v r="^$1\$" '$1 ~ r {print $1}')
   19 }
   20 
   21 
   22 rename_packages() {
   23     if [ -z "$1" ]; then
   24 	return
   25     fi
   26     pkg=$@
   27     
   28     filter="sed "
   29     runfilter="no"
   30     for tuple in $@; do
   31 	split=($(echo $tuple|sed -e 's|:| |'))
   32 	if [ -n "${split[1]}" ] && [ `is_installed ${split[0]}` ]; then
   33 	    echo "Package renamed:  ${split[0]} -> ${split[1]}"
   34 	    filter="$filter -e 's|^${split[0]}$|${split[1]}|'"
   35 	    runfilter="yes"
   36 	fi
   37     done
   38     if [ "$runfilter" = "no" ]; then
   39 	return
   40     fi
   41 
   42     :> $TMPDB
   43     if [ -f $DB ]; then
   44 	nextIsName=1
   45 	cat $DB|while read l; do
   46 	    if [ $nextIsName -eq 1 ]; then
   47 		nextIsName=0
   48 		echo $l|eval $filter >> $TMPDB
   49 	    else
   50 		if [ "$l" = "" ]; then
   51 		    nextIsName=1
   52 		fi
   53 		echo $l >> $TMPDB
   54 	    fi
   55 	done
   56     fi
   57 
   58     $MV $DB $BACKUPDB
   59     $MV $TMPDB $DB
   60 }
   61 
   62 
   63 remove_packages() {
   64     for package in $@; do
   65 	if [ `is_installed $package` ]; then
   66 	    echo "Package removed:  $package"
   67             $PKGRM -r $ROOT $package
   68 	fi
   69     done
   70 }
   71 
   72 inject_packages() {
   73     for package in $@; do
   74     pkg="`find core opt xorg \( -name \"${package}#*.pkg.tar.gz\" -o -name \"${package}#*.pkg.tar.bz2\" -o -name \"${package}#*.pkg.tar.xz\" \)&2> /dev/null`"
   75 	if [ -z "$pkg" ]; then
   76 		echo "  ERROR: package $package not found on ISO"
   77 	else
   78 		if [ -z `is_installed $package` ]; then
   79 		    echo "Package injected: $package"
   80 			$PKGADD -r $ROOT -f $pkg
   81 		else
   82 			echo "Package upgraded: $package"
   83 			$PKGADD -r $ROOT -u -f $pkg
   84 		fi
   85 	fi
   86     done
   87 }
   88 
   89 ####################
   90 
   91 if [ -z "$1" ]; then
   92     echo "Usage: $0 <root>"
   93     exit -1
   94 fi
   95 
   96 
   97 ##### # 3.1 -> 3.2 #####
   98 echo "* CRUX 3.1 -> 3.2 setup-helper"
   99 
  100 if [ `is_installed xorg-server` ]; then
  101 	inject_packages libepoxy
  102 fi
  103 
  104 if [ `is_installed firefox` ]; then
  105 	inject_packages gstreamer gst-plugins-base
  106 	inject_packages gtk3 at-spi2-core at-spi2-atk dbus
  107 fi
  108 
  109 if [ `is_installed wpa_supplicant` ]; then
  110 	inject_packages dbus
  111 fi
  112 
  113 remove_packages xorg-glamor-egl
  114 
  115 inject_packages dash gperf start-stop-daemon

Generated by cgit