Subversion Repositories Projects

Rev

Rev 311 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
93 dhylands 1
#!/bin/bash
21 dhylands 2
#
3
# Installs the files in this directory into the users home directory
4
#
5
 
6
#set -x
7
 
320 dhylands 8
script=$0
9
scriptdir=$(dirname ${script})
93 dhylands 10
 
320 dhylands 11
verbose=false
12
dry_run=false
93 dhylands 13
 
320 dhylands 14
DIR=${scriptdir}/
15
 
93 dhylands 16
osName=
17
case "$(uname)" in
18
    CYGWIN*)
19
        osName=cygwin
20
        ;;
21
 
22
    Linux)
23
        osName=linux
24
        ;;
25
esac
26
 
320 dhylands 27
function InstallDir
28
{
29
    local srcDir=$1
30
    local dstDir=$2
31
    local srcFile
32
    local dstFile
33
    local srcBase
21 dhylands 34
 
320 dhylands 35
    $verbose && echo "InstallDir '${srcDir}' '${dstDir}' ..."
93 dhylands 36
 
320 dhylands 37
    for srcFile in ${srcDir}/*
38
    do  
39
        $verbose && echo "Processing '${srcFile}' ..."
21 dhylands 40
 
320 dhylands 41
        srcBase=$(basename ${srcFile})
42
 
43
        if [ "${srcBase}" = "install.sh" ]
44
        then
45
            # That's this file - skip it
46
 
47
            ${verbose} && echo "-- Skipping install.sh"
48
            continue
49
        fi
21 dhylands 50
 
320 dhylands 51
        # Change files which look like dot-foo to be .foo
93 dhylands 52
 
320 dhylands 53
        if [ "${srcBase:0:4}" = "dot-" ]
54
        then
55
            dstFile=${dstDir}/.${srcBase:4}
56
            ${verbose} && echo "  Renaming '${srcFile}' to '${dstFile}'"
57
        else
58
            dstFile=${dstDir}/${srcBase}
59
        fi
93 dhylands 60
 
320 dhylands 61
        # Install the file
93 dhylands 62
 
320 dhylands 63
        if [ -d ${srcFile} ]
64
        then
65
            #
66
            # We're installing a subdirectory - recurse
67
            #
68
 
69
            mkdir -p ${dstFile}
70
            InstallDir ${srcFile} ${dstFile}
71
        else
72
            #
73
            # We're installing an individual file - check for os specific variants
74
            #
93 dhylands 75
 
320 dhylands 76
            installThisFile=0
77
            case "${srcFile}" in
93 dhylands 78
 
320 dhylands 79
                *-cygwin.sh)
80
                    if [ "${osName}" = "cygwin" ]
81
                    then
82
                        installThisFile=1
83
                        dstFile=${dstFile%-cygwin.sh}.sh
84
                    fi
85
                    ;;
86
 
87
                *-linux.sh)
88
                    if [ "${osName}" = "linux" ]
89
                    then
90
                        installThisFile=1
91
                        dstFile=${dstFile%-linux.sh}.sh
92
                    fi
93
                    ;;
94
 
95
                *)
93 dhylands 96
                    installThisFile=1
320 dhylands 97
                    ;;
98
            esac
93 dhylands 99
 
320 dhylands 100
            if [ "${installThisFile}" = "1" ]
101
            then
102
                echo "Installing '${srcFile}' to '${dstFile}' ..."
103
                ! ${dry_run} && cp -p ${srcFile} ${dstFile}
104
            else
105
                echo "Skipping   '${srcFile}' ..."
106
            fi
93 dhylands 107
        fi
320 dhylands 108
    done
311 dhylands 109
 
320 dhylands 110
}
111
 
112
InstallDir ${scriptdir} ~
113
 
114
#
115
# Now add a call to ~/.startup into .bashrc
116
#
117
 
311 dhylands 118
if ! fgrep .startup ~/.bashrc
119
then
120
        echo "" >> ~/.bashrc
121
        echo ". ~/.startup" >> ~/.bashrc
122
fi