File: build.sh

package info (click to toggle)
mikutter 3.0.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,396 kB
  • ctags: 1,916
  • sloc: ruby: 16,619; sh: 117; makefile: 27
file content (181 lines) | stat: -rw-r--r-- 5,147 bytes parent folder | download | duplicates (4)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#!/bin/bash

#**************************************************************
# mikutter environment builder for developer (debian & ubuntu)
#**************************************************************

RUBY_SERVER='http://ftp.ruby-lang.org/pub/ruby'
INSTALL_DIR='/opt/miku'
SRC_DIR="${INSTALL_DIR}/src"
DEPENDS='gcc make bzip2 wget pkg-config subversion
         libgtk2.0-dev libyaml-dev libssl-dev zlib1g-dev'

if   [ -e ${INSTALL_DIR} ] && [   -d ${INSTALL_DIR} ]; then
    echo "mikutter setup to ${INSTALL_DIR}"
elif [ -e ${INSTALL_DIR} ] && [ ! -d ${INSTALL_DIR} ]; then
    echo "${INSTALL_DIR} is not directory."
    exit 1
else
    mkdir -p ${INSTALL_DIR}
fi

if [ ! -w ${INSTALL_DIR} ]; then
    echo "${INSTALL_DIR} is not writable."
    exit 1
fi

if [ ! -w ${HOME} ]; then
    echo "${HOME} is not writable."
    exit 1
fi

mkdir -p ${SRC_DIR}
cd       ${INSTALL_DIR}
cat > mikutter-update.sh <<EOF
#!/bin/bash
#- mikutter environment updater -

EOF

#-------------------------------------------------------
# Setup build environment
#-------------------------------------------------------
OLDLANG=${LANG}
LANG=C
LOG=`apt-get -sy install ${DEPENDS}`
LANG=${OLDLANG}

if [ ! `echo ${LOG} | grep "No packages will be" | sed 's/ //g'` ]; then
    echo apt-get install ${DEPENDS}
    if [ $UID = '0' ]; then
        apt-get update
        apt-get -y install ${DEPENDS}
    else
        sudo apt-get update
        sudo apt-get -y install ${DEPENDS}
    fi
fi

#-------------------------------------------------------
# Expand rubygems
#-------------------------------------------------------
echo 'download rubygems.'
GEMS_PATH=`wget -O- 'http://rubyforge.org/frs/?group_id=126&release_id=45671' | \
    egrep -o 'href=".*.tgz"' | head -n 1 | egrep -o '/.*.tgz'`
GEMS_SRC=`echo ${GEMS_PATH} | sed 's/.*\///'`
GEMS_DIR=`echo ${GEMS_SRC}  | sed 's/\.tgz//'`
if [ ! -e ${SRC_DIR}/${GEMS_SRC} ]; then
    wget -P ${SRC_DIR} http://rubyforge.org${GEMS_PATH}
fi
tar xzf ${SRC_DIR}/${GEMS_SRC} -C ${SRC_DIR}


#-------------------------------------------------------
# Setup ruby environment
#-------------------------------------------------------
wget -O- ${RUBY_SERVER} | 
egrep -o '1..?..?-p[0-9]{1,3}' | sort | uniq | 
while read RUBY_VERSION; do
    S_VERSION=`echo ${RUBY_VERSION} | sed 's/-p.*//' | sed 's/\.//g'`
    
    # ruby 1.8.6 is not supported.
    [ ${S_VERSION} = '186' ] && continue
    # [ ${S_VERSION} = '191' ] && continue

    RUBY_SRC=ruby-${RUBY_VERSION}.tar.bz2
    # RUBY_SUFFIX=${S_VERSION}
    RUBY_SUFFIX=""


    # Download ruby source
    if [ ! -e ${SRC_DIR}/${RUBY_SRC} ]; then
    	echo "download ${RUBY_SRC}"
    	wget ${RUBY_SERVER}/${RUBY_SRC} -P ${SRC_DIR}
    else
    	echo "${RUBY_SRC} is already exist."
    fi


    # Build ruby
    echo build ${RUBY_VERSION}
    cd ${SRC_DIR}
    tar xpf ${RUBY_SRC}
    cd ruby-${RUBY_VERSION}
    ./configure --prefix=${INSTALL_DIR}/rb${S_VERSION} \
    	--program-suffix="${RUBY_SUFFIX}" \
    	--enable-shared && \
    	make && make install


    # Install rubygems(for 1.8.x)
    echo "setup gems."
    cd ${INSTALL_DIR}
    if [ `echo ${RUBY_VERSION} | grep '1.8.'` ]; then
    	${INSTALL_DIR}/rb${S_VERSION}/bin/ruby${RUBY_SUFFIX} ${SRC_DIR}/${GEMS_DIR}/setup.rb
    fi


    # Install require libs
    echo 'gem update --system'
    ${INSTALL_DIR}/rb${S_VERSION}/bin/gem${RUBY_SUFFIX} update  --system
    echo 'gem install pkg-config'
    ${INSTALL_DIR}/rb${S_VERSION}/bin/gem${RUBY_SUFFIX} install pkg-config
    echo 'gem install ruby-hmac'
    ${INSTALL_DIR}/rb${S_VERSION}/bin/gem${RUBY_SUFFIX} install ruby-hmac
    echo 'gem install gtk2'
    ${INSTALL_DIR}/rb${S_VERSION}/bin/gem${RUBY_SUFFIX} install gtk2


    # Install scripts
    cd ${INSTALL_DIR}
    echo 'create start, debug, test scripts'
    cat > mikutter-start${S_VERSION}.sh << EOS
#!/bin/bash

cd ${INSTALL_DIR}/mikutter
../rb${S_VERSION}/bin/ruby${RUBY_SUFFIX} \\
  -rubygems mikutter.rb
EOS

    cat > mikutter-debug${S_VERSION}.sh << EOS
#!/bin/bash

cd ${INSTALL_DIR}/mikutter
../rb${S_VERSION}/bin/ruby${RUBY_SUFFIX} -d \\
  -rubygems mikutter.rb --debug
EOS
    
    cat > mikutter-test${S_VERSION}.sh  <<EOF
#!/bin/bash
#- mikutter test script -

cd ${INSTALL_DIR}/mikutter
../rb${S_VERSION}/bin/ruby${RUBY_SUFFIX} -v
../rb${S_VERSION}/bin/gem${RUBY_SUFFIX}  -v
../rb${S_VERSION}/bin/ruby${RUBY_SUFFIX} -rubygems \\
       -e 'require "gtk2"; printf("Gtk2:    %s\n", Gtk::VERSION.join("."))'
../rb${S_VERSION}/bin/ruby${RUBY_SUFFIX} -rubygems \\
       -e 'require "hmac"; printf("HMAC:    %s\n", HMAC::VERSION)'
EOF
    
    echo "${INSTALL_DIR}/rb${S_VERSION}/bin/gem${RUBY_SUFFIX} update --system" >> mikutter-update.sh
    echo "${INSTALL_DIR}/rb${S_VERSION}/bin/gem${RUBY_SUFFIX} update"          >> mikutter-update.sh
done


#-------------------------------------------------------
# Setup mikutter
#-------------------------------------------------------
cd ${INSTALL_DIR}
echo 'checkout mikutter'
svn co svn://mikutter.hachune.net/mikutter/trunk mikutter

cat >> mikutter-update.sh << EOS
cd ${INSTALL_DIR}/mikutter
svn up
EOS

chmod +x mikutter-*.sh

echo 'done.'