mirror of
https://github.com/rkd77/elinks.git
synced 2025-01-03 14:57:44 -05:00
[ build ] win64 docker env, http server
This commit is contained in:
parent
a45a892684
commit
4ca38e4f75
69
build.sh
69
build.sh
@ -78,7 +78,7 @@ configure() {
|
|||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
echo "--[ Listing errors in config.log ]--"
|
echo "--[ Listing errors in config.log ]--"
|
||||||
cat config.log | grep error
|
cat config.log | grep error | tail
|
||||||
echo "--[ Configuration failed... ]--"
|
echo "--[ Configuration failed... ]--"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@ -114,7 +114,7 @@ test() {
|
|||||||
#--dump \
|
#--dump \
|
||||||
#./test/hello.html
|
#./test/hello.html
|
||||||
# more complete testing
|
# more complete testing
|
||||||
./test.sh
|
./test.sh "$BIN_SUFFIX" "$ARCHIT"
|
||||||
}
|
}
|
||||||
|
|
||||||
pub() {
|
pub() {
|
||||||
@ -132,11 +132,23 @@ info() {
|
|||||||
file ./src/elinks$1
|
file ./src/elinks$1
|
||||||
ls -lh ./src/elinks$1
|
ls -lh ./src/elinks$1
|
||||||
ls -l ./src/elinks$1
|
ls -l ./src/elinks$1
|
||||||
./src/elinks --version
|
if [ "$ARCHIT" = "win64" || "$ARCHIT" = "win32" ]; then
|
||||||
|
wine ./src/elinks$1 --version
|
||||||
|
else
|
||||||
|
./src/elinks$1 --version
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
set_arch() {
|
set_arch() {
|
||||||
if [ "$1" = "lin64" ]; then
|
if [ "$1" = "lin32" ]; then
|
||||||
|
ARCHIT="$1"
|
||||||
|
CC="i686-linux-gnu-gcc"
|
||||||
|
LD="i686-linux-gnu-ld"
|
||||||
|
MAKE_HOST="i686-linux-gnu"
|
||||||
|
BIN_SUFFIX=""
|
||||||
|
LDFLAGS=""
|
||||||
|
LIBS=""
|
||||||
|
elif [ "$1" = "lin64" ]; then
|
||||||
ARCHIT="$1"
|
ARCHIT="$1"
|
||||||
CC="x86_64-linux-gnu-gcc"
|
CC="x86_64-linux-gnu-gcc"
|
||||||
LD="x86_64-linux-gnu-ld"
|
LD="x86_64-linux-gnu-ld"
|
||||||
@ -144,6 +156,14 @@ set_arch() {
|
|||||||
BIN_SUFFIX=""
|
BIN_SUFFIX=""
|
||||||
LDFLAGS=""
|
LDFLAGS=""
|
||||||
LIBS=""
|
LIBS=""
|
||||||
|
elif [ "$1" = "win32" ]; then
|
||||||
|
ARCHIT="$1"
|
||||||
|
CC="i686-w64-mingw32-gcc"
|
||||||
|
LD="i686-w64-mingw32-ld"
|
||||||
|
MAKE_HOST="x86_64-w32-mingw32"
|
||||||
|
BIN_SUFFIX=".exe"
|
||||||
|
LDFLAGS=""
|
||||||
|
LIBS=""
|
||||||
elif [ "$1" = "win64" ]; then
|
elif [ "$1" = "win64" ]; then
|
||||||
ARCHIT="$1"
|
ARCHIT="$1"
|
||||||
CC="x86_64-w64-mingw32-gcc"
|
CC="x86_64-w64-mingw32-gcc"
|
||||||
@ -181,35 +201,42 @@ set_arch() {
|
|||||||
|
|
||||||
# ARCH SELECTION MENU
|
# ARCH SELECTION MENU
|
||||||
arch_menu() {
|
arch_menu() {
|
||||||
MENU_ARCHS="$ARCHS return"
|
MENU_ARCHS="$ARCHS null null null null return"
|
||||||
echo "[=] Build architecture selection menu"
|
echo "[=] Build architecture selection menu"
|
||||||
select SEL in $MENU_ARCHS; do
|
select SEL in $MENU_ARCHS; do
|
||||||
echo "[=] Build architecture selection menu"
|
echo "[=] Build architecture selection menu"
|
||||||
if [ "$SEL" = "lin64" ]; then
|
if [ "$SEL" = "lin32" ]; then
|
||||||
set_arch lin64
|
set_arch "$SEL"
|
||||||
|
elif [ "$SEL" = "lin64" ]; then
|
||||||
|
set_arch "$SEL"
|
||||||
elif [ "$SEL" = "win64" ]; then
|
elif [ "$SEL" = "win64" ]; then
|
||||||
set_arch win64
|
set_arch "$SEL"
|
||||||
|
elif [ "$SEL" = "win32" ]; then
|
||||||
|
set_arch "$SEL"
|
||||||
elif [ "$SEL" = "arm32" ]; then
|
elif [ "$SEL" = "arm32" ]; then
|
||||||
set_arch arm32
|
set_arch "$SEL"
|
||||||
elif [ "$SEL" = "arm64" ]; then
|
elif [ "$SEL" = "arm64" ]; then
|
||||||
set_arch arm64
|
set_arch "$SEL"
|
||||||
elif [ "$SEL" = "native" ]; then
|
elif [ "$SEL" = "native" ]; then
|
||||||
set_arch native
|
set_arch native
|
||||||
elif [ "$SEL" = "make" ]; then
|
elif [ "$SEL" = "make" ]; then
|
||||||
build
|
build
|
||||||
|
elif [ "$SEL" = "null" ]; then
|
||||||
|
echo "[.] This option is intentially left blank"
|
||||||
elif [ "$SEL" = "return" ]; then
|
elif [ "$SEL" = "return" ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
echo "--[ Compiler: " $CC " ]--"
|
echo "--[ Architecture : " $ARCHIT " ]--"
|
||||||
echo "--[ Host : " $MAKE_HOST " ]--"
|
echo "--[ Compiler : " $CC " ]--"
|
||||||
|
echo "--[ Host : " $MAKE_HOST " ]--"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# MAIN LOOP
|
# MAIN LOOP
|
||||||
ARCHIT=""
|
ARCHIT=""
|
||||||
BIN_SUFFIX=""
|
BIN_SUFFIX=""
|
||||||
ARCHS="lin64 win64 arm32 arm64 native"
|
ARCHS="lin32 lin64 win32 win64 arm32 arm64 native"
|
||||||
CC_SEL="arch null null null \
|
CC_SEL="arch null null build \
|
||||||
config make test \
|
config make test \
|
||||||
pub debug \
|
pub debug \
|
||||||
info \
|
info \
|
||||||
@ -219,6 +246,15 @@ set_arch native
|
|||||||
select SEL in $CC_SEL; do
|
select SEL in $CC_SEL; do
|
||||||
if [ "$SEL" = "arch" ]; then
|
if [ "$SEL" = "arch" ]; then
|
||||||
arch_menu
|
arch_menu
|
||||||
|
elif [ "$SEL" = "build" ]; then
|
||||||
|
configure "$CC" "$LD" "$MAKE_HOST" "$LDFLAGS" "$LIBS"
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
build
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
elif [ "$SEL" = "make" ]; then
|
elif [ "$SEL" = "make" ]; then
|
||||||
build
|
build
|
||||||
elif [ "$SEL" = "config" ]; then
|
elif [ "$SEL" = "config" ]; then
|
||||||
@ -254,6 +290,7 @@ select SEL in $CC_SEL; do
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
echo "--[ [=] elinks build system main menu ]--"
|
echo "--[ [=] elinks build system main menu ]--"
|
||||||
echo "--[ Compiler: " $CC " ]--"
|
echo "--[ Architecture : " $ARCHIT " ]--"
|
||||||
echo "--[ Host : " $MAKE_HOST " ]--"
|
echo "--[ Compiler : " $CC " ]--"
|
||||||
|
echo "--[ Host : " $MAKE_HOST " ]--"
|
||||||
done
|
done
|
||||||
|
9
docker/win64/Dockerfile
Normal file
9
docker/win64/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# [ win64 ] elinks docker development environment
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM debian:latest
|
||||||
|
|
||||||
|
RUN apt-get update; apt-get -y install rsync vim screen git make automake gcc-mingw-w64-x86-64 bash g++-mingw-w64-x86-64 libssl-dev
|
||||||
|
RUN cd /root; git clone https://github.com/rkd77/elinks
|
||||||
|
|
2
docker/win64/build.sh
Executable file
2
docker/win64/build.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
docker build -t "elinks-dev:latest" .
|
3
docker/win64/cleanup.sh
Executable file
3
docker/win64/cleanup.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
docker container rm elinks
|
||||||
|
docker image rm elinks-dev
|
5
docker/win64/run.sh
Executable file
5
docker/win64/run.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
docker run -it \
|
||||||
|
--name=elinks \
|
||||||
|
elinks-dev:latest \
|
||||||
|
/bin/bash
|
3
docker/win64/shell.sh
Executable file
3
docker/win64/shell.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
docker start elinks
|
||||||
|
docker exec -it elinks bash
|
80
test.sh
80
test.sh
@ -17,18 +17,60 @@ echo ' '
|
|||||||
# RUN TEST
|
# RUN TEST
|
||||||
run_test() {
|
run_test() {
|
||||||
if [ "$1" = "hello" ]; then
|
if [ "$1" = "hello" ]; then
|
||||||
./src/elinks --dump ./test/hello.html
|
$ELINKS --dump ./test/hello.html
|
||||||
elif [ "$1" = "http" ]; then
|
elif [ "$1" = "http" ]; then
|
||||||
./src/elinks http://elinks.or.cz | head
|
echo "[=] assumes You're running https server on port 9452"
|
||||||
|
echo "[=] see http_server option"
|
||||||
|
$ELINKS \
|
||||||
|
--dump http://127.0.0.1:9452 | head
|
||||||
elif [ "$1" = "https" ]; then
|
elif [ "$1" = "https" ]; then
|
||||||
echo "[=] assumes You're running https server on port 9453"
|
echo "[=] assumes You're running https server on port 9453"
|
||||||
echo "[=] see https_server option"
|
echo "[=] see https_server option"
|
||||||
./src/elinks \
|
$ELINKS \
|
||||||
-eval 'set connection.ssl.cert_verify = 0' \
|
-eval 'set connection.ssl.cert_verify = 0' \
|
||||||
--dump https://127.0.0.1:9453 | head
|
--dump https://127.0.0.1:9453 | head
|
||||||
|
elif [ "$1" = "interactive" ]; then
|
||||||
|
# set 256 colors terminal
|
||||||
|
# use: export TERM=xterm-256color
|
||||||
|
# and use compiled elinks with the tests folder
|
||||||
|
if [ "$ARCH" = "win64" ]; then
|
||||||
|
export TERM=dumb
|
||||||
|
$ELINKS \
|
||||||
|
--config-dir `pwd`/test/etc \
|
||||||
|
./test
|
||||||
|
else
|
||||||
|
export TERM=xterm-256color
|
||||||
|
$ELINKS \
|
||||||
|
--config-dir `pwd`/test/etc \
|
||||||
|
-eval 'set terminal.xterm-256color.colors = 3' \
|
||||||
|
./test
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# HTTP SERVER MENU
|
||||||
|
http_menu() {
|
||||||
|
HTTP_OPTS="start_http stop_http return"
|
||||||
|
echo ""
|
||||||
|
echo "--[ http server menu ]--"
|
||||||
|
echo ""
|
||||||
|
select SEL in $HTTP_OPTS; do
|
||||||
|
echo " [*] http server menu "
|
||||||
|
if [ "$SEL" = "start_http" ]; then
|
||||||
|
python3 ./test/server/httpf.py &
|
||||||
|
PID=`echo $!`
|
||||||
|
echo $PID > /tmp/eltmpf.pid
|
||||||
|
echo "[*} Starting http server (pid $PID)"
|
||||||
|
elif [ "$SEL" = "stop_http" ]; then
|
||||||
|
PID=`cat /tmp/eltmpf.pid`
|
||||||
|
echo "[*] Stopping http server (pid $PID)"
|
||||||
|
kill $PID
|
||||||
|
elif [ "$SEL" = "return" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# HTTPS SERVER MENU
|
# HTTPS SERVER MENU
|
||||||
https_menu() {
|
https_menu() {
|
||||||
HTTPS_OPTS="start_https stop_https certgen return"
|
HTTPS_OPTS="start_https stop_https certgen return"
|
||||||
@ -57,16 +99,42 @@ https_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# MAIN LOOP
|
# MAIN LOOP
|
||||||
SEL = "none"
|
#
|
||||||
OPTS="hello http https null null null null null null null https_server exit"
|
# When called from build.sh it will get first
|
||||||
|
# parameter as binary suffix and second parameter
|
||||||
|
# as architecture
|
||||||
|
#
|
||||||
|
if [ -d $1 ]; then
|
||||||
|
BIN_SUFFIX=""
|
||||||
|
else
|
||||||
|
BIN_SUFFIX=$1
|
||||||
|
fi
|
||||||
|
if [ -d $2 ]; then
|
||||||
|
ARCHIT="lin64"
|
||||||
|
else
|
||||||
|
ARCHIT=$2
|
||||||
|
fi
|
||||||
|
echo $ARCH $BIN_SUFFIX
|
||||||
|
if [ -f ../bin/elinks_$ARCH$BIN_SUFFIX ]; then
|
||||||
|
ELINKS=../bin/elinks_$ARCH$BIN_SUFFIX
|
||||||
|
else
|
||||||
|
ELINKS=./src/elinks$BIN_SUFFIX
|
||||||
|
fi
|
||||||
|
SEL="none"
|
||||||
|
OPTS="hello http https interactive null null null null null http_server https_server exit"
|
||||||
select SEL in $OPTS; do
|
select SEL in $OPTS; do
|
||||||
echo "--[ Current test : " $SEL" ]--"
|
echo "[*] Current test : " $SEL
|
||||||
|
echo "[*] Current bin : " $ELINKS
|
||||||
if [ "$SEL" = "hello" ]; then
|
if [ "$SEL" = "hello" ]; then
|
||||||
run_test $SEL
|
run_test $SEL
|
||||||
elif [ "$SEL" = "http" ]; then
|
elif [ "$SEL" = "http" ]; then
|
||||||
run_test $SEL
|
run_test $SEL
|
||||||
elif [ "$SEL" = "https" ]; then
|
elif [ "$SEL" = "https" ]; then
|
||||||
run_test $SEL
|
run_test $SEL
|
||||||
|
elif [ "$SEL" = "interactive" ]; then
|
||||||
|
run_test $SEL
|
||||||
|
elif [ "$SEL" = "http_server" ]; then
|
||||||
|
http_menu
|
||||||
elif [ "$SEL" = "https_server" ]; then
|
elif [ "$SEL" = "https_server" ]; then
|
||||||
https_menu
|
https_menu
|
||||||
elif [ "$SEL" = "exit" ]; then
|
elif [ "$SEL" = "exit" ]; then
|
||||||
|
15
test/server/httpf.py
Executable file
15
test/server/httpf.py
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
# testing server for elinks http
|
||||||
|
#
|
||||||
|
|
||||||
|
PORT = 9452
|
||||||
|
|
||||||
|
import http.server
|
||||||
|
import socketserver
|
||||||
|
|
||||||
|
handler = http.server.SimpleHTTPRequestHandler
|
||||||
|
|
||||||
|
with socketserver.TCPServer(('127.0.0.1', PORT), handler) as httpd:
|
||||||
|
print("[*] http server started at localhost:" + str(PORT))
|
||||||
|
httpd.serve_forever()
|
Loading…
Reference in New Issue
Block a user