File: patch_profile

package info (click to toggle)
jruby 1.7.26-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 84,572 kB
  • sloc: ruby: 669,910; java: 253,056; xml: 35,152; ansic: 9,187; yacc: 7,267; cpp: 5,244; sh: 1,036; makefile: 345; jsp: 48; tcl: 40
file content (81 lines) | stat: -rw-r--r-- 1,771 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/sh

check_previous_patch() {
    if grep -q 'Setting PATH for JRuby' "$1"
        then return 1
    fi
    return 0
}

declare -x PR

# add current directory to the user's profile
if [ `id -ur` = 0 ]; then
    # Run from the installer, do some trickery to fetch the information
    # we need.
    theShell="`finger $USER | grep Shell: | head  -1 | awk '{ print $NF }'`"
else
    theShell="${SHELL}"
fi

BSH="`basename "${theShell}"`"
case "${BSH}" in
*csh)
    if [ -f "${HOME}/.tcshrc" ]; then
        PR="${HOME}/.tcshrc"
    else
        PR="${HOME}/.cshrc"
    fi
    ;;
bash)
    if [ -e "${HOME}/.bash_profile" ]; then
        PR="${HOME}/.bash_profile"
    elif [ -e "${HOME}/.bash_login" ]; then
        PR="${HOME}/.bash_login"
    elif [ -e "${HOME}/.profile" ]; then
        PR="${HOME}/.profile"
    else
        PR="${HOME}/.bash_profile"
    fi
    ;;
*sh)
    PR="${HOME}/.profile"
    ;;
esac

# Create backup copy before patching
patch_profile() {
    if [ -f "${PR}" ]; then
        cp -fp "${PR}" "${PR}.jrubysave"
    fi
    echo "" >> "${PR}"
    echo "# Setting PATH for JRuby ${JRUBYVER}" >> "${PR}"
    echo "# The orginal version is saved in `basename ${PR}`.jrubysave" >> "${PR}"
    echo 'PATH="${PATH}:'"${JRUBY_CURRENT_PATH}/bin"'"' >> "${PR}"
    echo 'export PATH' >> "${PR}"
    if [ `id -ur` = 0 ]; then
        chown "${USER}" "${PR}"
    fi
}

try_patch_profile() {
    check_previous_patch $PR
    if [ $? -eq 0 ]
    then
        patch_profile
    fi
}

try_revert_patch() {
    check_previous_patch $PR
    patched=$?
    if [ $patched -eq 1 ]
    then
        if [ -f "${PR}.jrubysave" ]
        then
            cp -fp "${PR}.jrubysave" "${PR}"
        else
            sed -iE '/JRuby/,/export/d' ${PR}
        fi
    fi
}