source: common/libs/func_compare.sh@ b2a4972

trunk
Last change on this file since b2a4972 was 06b7314, checked in by Pierre Labastie <pierre.labastie@…>, 16 months ago

Allow two names for scriptlet containing "userdel"

It used to be named "revised_chroot", it is now named "cleanup"
Allow both names by testing whether revised something is present.

  • Property mode set to 100644
File size: 3.2 KB
RevLine 
[45f82718]1#----------------------------------#
2wrt_compare_targets() { #
3#----------------------------------#
4
5 for ((N=1; N <= ITERATIONS ; N++)) ; do # Double parentheses,
6 # and "ITERATIONS" with no "$".
7 ITERATION=iteration-$N
8 if [ "$N" != "1" ] ; then
[3da8c49]9 wrt_system_build "$1" "$N" "$PREV_IT"
[45f82718]10 fi
[3da8c49]11 # add needed Makefile target
[45f82718]12 this_script=$ITERATION
[045b2dc]13 CHROOT_wrt_target "$ITERATION" "$PREV"
[45f82718]14 wrt_compare_work "$ITERATION" "$PREV_IT"
[10c8b78]15 wrt_logs "$N"
[6bb080e]16 wrt_touch
[45f82718]17 PREV_IT=$ITERATION
18 PREV=$ITERATION
19 done
[3da8c49]20 # We need to prevent "userdel" in all iterations but the last
21 # We need to access the scriptlets in "dir"
22 local dir
23 printf -v dir chapter%02d "$1"
24
[06b7314]25 REVISED=cleanup
26 if ls $dir/*revised* 2>/dev/null; then REVISED=revised; fi
27 sed -i '/userdel/d' $dir/*$REVISED*
[3da8c49]28 for (( N = 2; N < ITERATIONS; N++ )); do
[06b7314]29 sed -i '/userdel/d' $dir-build_$N/*$REVISED*
[3da8c49]30 done
31
[45f82718]32}
33
34#----------------------------------#
35wrt_system_build() { #
36#----------------------------------#
[3da8c49]37 local CHAP=$1
38 local RUN=$2
39 local PREV_IT=$3
[45f82718]40
[0fa52f2]41 chapter_targets $CHAP $RUN
[45f82718]42
[0fa52f2]43 CHROOT_TGT="$CHROOT_TGT $PREV_IT $system_build"
[045b2dc]44
45 if [[ "$RUN" = "$ITERATIONS" ]] ; then
[3da8c49]46 CHROOT_TGT="$CHROOT_TGT iteration-$RUN"
[045b2dc]47 fi
[45f82718]48}
49
50#----------------------------------#
51wrt_compare_work() { #
52#----------------------------------#
53 local ITERATION=$1
54 local PREV_IT=$2
[1a1f099]55 local PRUNEPATH="/dev /home /${SCRIPT_ROOT} /lost+found /media /mnt /opt /proc \
[f5ecc28]56/sources /root /run /srv /sys /tmp /tools /usr/local /usr/src /var"
[45f82718]57
[045b2dc]58 local ROOT_DIR=/
59 local DEST_TOPDIR=/${SCRIPT_ROOT}
60 local ICALOGDIR=/${SCRIPT_ROOT}/logs/ICA
[45f82718]61
[401f81e]62 if [[ "$RUN_ICA" = "y" ]] ; then
[45f82718]63 local DEST_ICA=$DEST_TOPDIR/ICA && \
[31a9b14]64 # the PRUNEPATH additional setting is to avoid .pyc files to show up in diff
[45f82718]65(
66 cat << EOF
[31a9b14]67 @PRUNEPATH="$PRUNEPATH \$\$(find /usr/lib -name __pycache__)"; \\
68 extras/do_copy_files "\$\$PRUNEPATH" $ROOT_DIR $DEST_ICA/$ITERATION >>logs/\$@ 2>&1 && \\
[6bb080e]69 extras/do_ica_prep $DEST_ICA/$ITERATION >>logs/\$@ 2>&1
[45f82718]70EOF
71) >> $MKFILE.tmp
72 if [[ "$ITERATION" != "iteration-1" ]] ; then
73 wrt_do_ica_work "$PREV_IT" "$ITERATION" "$DEST_ICA"
74 fi
75 fi
76}
77
78#----------------------------------#
79wrt_do_ica_work() { #
80#----------------------------------#
[6bb080e]81 echo -e "\t@extras/do_ica_work $1 $2 $ICALOGDIR $3 >>logs/\$@ 2>&1" >> $MKFILE.tmp
[45f82718]82}
83
[10c8b78]84#----------------------------------#
85wrt_logs() { #
86#----------------------------------#
87 local build=build_$1
88 local file
89
90(
91 cat << EOF
92 @cd logs && \\
93 mkdir $build && \\
[b7515ec]94 mv -f `echo ${system_build} | sed 's/ /* /g'`* $build && \\
[10c8b78]95 if [ ! $build = build_1 ] ; then \\
96 cd $build && \\
97 for file in \`ls .\` ; do \\
98 mv -f \$\$file \`echo \$\$file | sed -e 's,-$build,,'\` ; \\
99 done ; \\
[7b7b5e9]100 fi
[10c8b78]101 @cd /\$(SCRIPT_ROOT)
102 @if [ -d test-logs ] ; then \\
103 cd test-logs && \\
104 mkdir $build && \\
[7fa9369]105 mv -f `echo ${system_build} | sed 's/ /* /g'`* $build && \\
[10c8b78]106 if [ ! $build = build_1 ] ; then \\
107 cd $build && \\
108 for file in \`ls .\` ; do \\
109 mv -f \$\$file \`echo \$\$file | sed -e 's,-$build,,'\` ; \\
110 done ; \\
111 fi ; \\
112 cd /\$(SCRIPT_ROOT) ; \\
113 fi ;
114EOF
115) >> $MKFILE.tmp
116}
Note: See TracBrowser for help on using the repository browser.