~ago/lupin/gutsy

1 by ago
Added casper overrides to find_iso and find_preseed
1
#! /bin/sh
7 by ago
Fix to allow scanning devices that are already mounted
2
#exec > /find_preseed.log 2>&1
1 by ago
Added casper overrides to find_iso and find_preseed
3
set -x
4
5
PREREQ=""
6
DESCRIPTION="Loading preseed file..."
7
8
. /scripts/casper-functions
9
10
prereqs ()
11
{
12
	echo "$PREREQ"
13
}
14
15
case $1 in
16
# get pre-requisites
6 by ago
minor fixes
17
    prereqs)
18
        prereqs
19
        exit 0
20
        ;;
1 by ago
Added casper overrides to find_iso and find_preseed
21
esac
22
23
. /scripts/lupin-helpers
24
PRESEED="${rootmnt}/preseed.cfg"
25
26
find_preseed(){
27
    preseed_path=
28
    for x in $(cat /proc/cmdline); do
29
        case ${x} in
30
            find_preseed=*)
31
                preseed_path=${x#find_preseed=}
32
                ;;
6 by ago
minor fixes
33
            file=)
3 by ago
minor fix
34
                PRESEED=${x#file=}
35
                ;;
6 by ago
minor fixes
36
            preseed/file=)
3 by ago
minor fix
37
                PRESEED=${x#preseed/file=}
38
                ;;
1 by ago
Added casper overrides to find_iso and find_preseed
39
        esac
40
    done
7 by ago
Fix to allow scanning devices that are already mounted
41
    find_path "${preseed_path}" || return 1
1 by ago
Added casper overrides to find_iso and find_preseed
42
    return 0
43
}
44
45
fix_preseed(){
3 by ago
minor fix
46
    #TBD make sure CR LF can be handled safely
47
    
48
    #TBD what follows tries to find Linux devices if preseed is generated from another OS
49
    #a proper fix should be to find reliable device mappings in the preseed-generator
1 by ago
Added casper overrides to find_iso and find_preseed
50
    
51
    #Find Linux device of User Folder for importing settings by m-a
52
    user_folder=$(grep "#UserFolder" ${PRESEED})
53
    user_folder=${user_folder#'#UserFolder='}
54
    dev=${PRESEED_DEVICE}
55
    if find_path  "${user_folder}"; then
56
        dev="${FOUNDDEV}"
57
    fi    
58
    dev=${dev#/dev/}
59
    sed -i "s/MADEVICE/${dev}/g" ${PRESEED}
60
    
61
    #Find Linux device of loopinstall folder
62
    loopinstall_folder=$(grep "#LoopInstallFolder" ${PRESEED})
63
    loopinstall_folder=${loopinstall_folder#'#LoopInstallFolder='}
64
    dev=${PRESEED_DEVICE}
65
    if find_path  "${loopinstall_folder}"; then
66
        dev="${FOUNDDEV}"
67
    fi
68
    check_loopinstall_folder ${dev} ${loopinstall_folder} 
6 by ago
minor fixes
69
    disk=${dev%[0-9]} #TBD broken if n>9
70
    partn=${dev#${disk}} 
7 by ago
Fix to allow scanning devices that are already mounted
71
    disk=$(echo "${disk}"|sed 's/\//\\\//g')
1 by ago
Added casper overrides to find_iso and find_preseed
72
    sed -i "s/LIDISK/${disk}/g" ${PRESEED}
73
    sed -i "s/LIPARTITION/${partn}/g" ${PRESEED}
74
}
75
76
check_loopinstall_folder(){
77
    dev=${1}
78
    loopinstall_folder=${2}
79
    
80
    #TBD Check whether LOOPINSTALL_FOLDER is vergin or not
81
    #Can we install on top of an existing installation?
82
    #Shall we overwrite? ignore and simply boot the live CD or panic?
3 by ago
minor fix
83
    #Do we do the check here or later on?
1 by ago
Added casper overrides to find_iso and find_preseed
84
}
85
6 by ago
minor fixes
86
if find_preseed; then
1 by ago
Added casper overrides to find_iso and find_preseed
87
    PRESEED_DEVICE="${FOUNDDEV}"
88
    PRESEED_FOLDER=$(dirname "${FOUNDPATH}")
3 by ago
minor fix
89
    #copy over preseed 
7 by ago
Fix to allow scanning devices that are already mounted
90
    mkdir -p $(dirname "${PRESEED}")
1 by ago
Added casper overrides to find_iso and find_preseed
91
    cp "${FOUNDPATH}" "${PRESEED}"
3 by ago
minor fix
92
    #some temporary hooks for testing pourposes
1 by ago
Added casper overrides to find_iso and find_preseed
93
    #copy over early_command and late_command scripts
94
    if [ -e "${PRESEED_FOLDER}/late_command.sh" ]; then
95
        cp "${PRESEED_FOLDER}/late_command.sh" "${rootmnt}/sbin"
96
    fi
97
    if [ -e "${PRESEED_FOLDER}/early_command.sh" ]; then
98
        cp "${PRESEED_FOLDER}/early_command.sh" "${rootmnt}/sbin"
99
    fi
100
    #make local packages available during installation
101
    mkdir -p "${rootmnt}/packages"
102
    cp "${PRESEED_FOLDER}/*.deb" "${rootmnt}/packages" 2> /dev/null
7 by ago
Fix to allow scanning devices that are already mounted
103
    #fix parameters that cannot be set from a non-linux OS
104
    fix_preseed    
1 by ago
Added casper overrides to find_iso and find_preseed
105
fi
106