Last active
January 8, 2017 15:25
-
-
Save cachefiles/09c02ee39f3a5d2fd1e2ffc2a654fbfe to your computer and use it in GitHub Desktop.
openwrt build daemon for build machine
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
</head> | |
<body> | |
<?php | |
function is_web_url($url) | |
{ | |
return preg_match('/^[a-zA-Z0-9_:\\/.-]*$/', $url) > 0; | |
} | |
$sdkurl = $_REQUEST["sdkurl"]; | |
$s = socket_create(AF_INET, SOCK_STREAM, 0); | |
$c = socket_connect($s, "127.0.0.1", 9000); | |
if (!$c) { | |
socket_close($s); | |
usleep(10000); | |
$s = socket_create(AF_INET, SOCK_STREAM, 0); | |
$c = socket_connect($s, "127.0.0.1", 9000); | |
} | |
if ($c && is_web_url($sdkurl)) { | |
socket_write($s, "sdkurl="); | |
socket_write($s, $sdkurl); | |
$build_dir = socket_read($s, 1024); | |
} | |
socket_close($s); | |
?> | |
<?php echo $build_dir ?> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
webdir=/var/www/html/downloads/dnsfix-openwrt; | |
build_package() { | |
wget -O - $sdkurl | tar xjf - -C $tmpdir || return; | |
sdkdir=$tmpdir/$(ls $tmpdir); | |
git clone --recursive https://github.com/cachefiles/dnsfix $sdkdir/package/dnsfix || return; | |
make -C $sdkdir package/dnsfix/openwrt/compile || return; | |
mkdir -p $webdir/$bindir; | |
cp $(find $sdkdir/bin -type f) $webdir/$bindir || return; | |
(cd $webdir && find $bindir/ -type f -name \*.ipk) > $webdir/$jobdir/pkgpath.txt; | |
rm -rf $tmpdir; | |
cat $webdir/$jobdir/pkgpath.txt; | |
} | |
while true; do | |
jobdir=$(mktemp -d build_openwrt_XXXX) | |
tmpdir=$(pwd)/$jobdir; | |
echo wait new build $jobdir; | |
echo new build jobid is $jobdir > $webdir/build.txt | |
echo $tmpdir | nc -l -p 9000 -s 127.0.0.1 -q 1 > sdkenv.rc | |
echo check build $jobdir; | |
#sdkurl=http://downloads.openwrt.org/latest/adm8668/generic/OpenWrt-SDK-15.05.1-adm8668_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2 | |
sdkurl=""; | |
source sdkenv.rc | |
bindir=$(echo $sdkurl| sed 's#(https|http)://[^/]*/#/#; s#/[^/]*$#/#; s#.*/\([^/]*/[^/]*/[^/]*/\)[^/]*$#\1#'); | |
echo $sdkurl; | |
echo start build job $jobdir > $webdir/build.txt | |
if echo $sdkurl |grep downloads.openwrt.org; then | |
mkdir -p $webdir/$jobdir; | |
build_package 2>&1 | tee $webdir/$jobdir/build.log; | |
else | |
rmdir $tmpdir | |
fi; | |
echo done build job $jobdir > $webdir/build.txt | |
done; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment