CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Initial set of updates for 3.0.
[initrd.git] / filesystem / setup-helper
CommitLineData
762878ff
JB
1#!/bin/bash
2# post setup
3#
4# Johannes Winkelmann, jw at tks6 dot net
5
6ROOT=$1
7DB=$ROOT/var/lib/pkg/db
8
9## those values should be changed:
10TMPDB=$DB.tmp
11BACKUPDB=$DB.backup
12PKGADD="pkgadd"
13PKGRM="pkgrm"
14MV="mv"
15
16
17is_installed() {
18 printf "%s" $(pkginfo -r $ROOT -i | gawk -v r="^$1\$" '$1 ~ r {print $1}')
19}
20
21
22rename_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
63remove_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
72inject_packages() {
73 for package in $@; do
b58c7507 74 pkg="`find core $EXTRA_COLLECTIONS \( -name \"${package}#*.pkg.tar.gz\" -o -name \"${package}#*.pkg.tar.bz2\" -o -name \"${package}#*.pkg.tar.xz\" \)&2> /dev/null`"
762878ff 75 if [ -z "$pkg" ]; then
b58c7507 76 echo " ERROR: package $package not found on CRUX media installer"
762878ff
JB
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
91if [ -z "$1" ]; then
92 echo "Usage: $0 <root>"
93 exit -1
94fi
95
b58c7507
JB
96EXTRA_COLLECTIONS=""
97for i in /media/crux/*; do.
98 if [ -d $i ]; then
99 if [ "$i" != "core" ] && [ "$i" != "kernel" ]; then
100 EXTRA_COLLECTIONS="$EXTRA_COLLECTIONS $i"
101 fi
102 fi
103done
762878ff 104
2b95ffc0
JB
105##### # 2.8 -> 3.0 #####
106echo "* CRUX-ARM 2.8 -> 3.0 setup-helper"
762878ff 107
b58c7507 108if grep -q opt $EXTRA_COLLECTIONS; then
2b95ffc0
JB
109 if [ `is_installed pango` ]; then
110 inject_packages harfbuzz
b58c7507 111 fi
762878ff
JB
112fi
113
114# force replacement of /etc/mtab with symlink
115ln -sf /proc/self/mounts $ROOT/etc/mtab