mirror of
https://github.com/antos-rde/antos.git
synced 2025-07-12 22:03:30 +02:00
feat: add building system based on make
This commit is contained in:
191
scripts/mkappimg.sh
Executable file
191
scripts/mkappimg.sh
Executable file
@ -0,0 +1,191 @@
|
||||
#! /bin/bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
arch=$1
|
||||
tag=$2
|
||||
DIR=$3
|
||||
logo=$4
|
||||
[ -z $arch ] && echo "1. No architecture provided" && exit 1
|
||||
[ -z $tag ] && echo "2. No version provided" && exit 1
|
||||
[ -z $DIR ] && echo "3. No input dir provided" && exit 1
|
||||
[ -z $logo ] && echo "4. No logo file provided" && exit 1
|
||||
# download the appimagetools
|
||||
echo "Downloading the appimage tools"
|
||||
archname=x86_64
|
||||
case $arch in
|
||||
amd64|x86_64)
|
||||
archname=x86_64
|
||||
suffix=x86_64
|
||||
;;
|
||||
aarch64|arm64)
|
||||
archname=aarch64
|
||||
suffix=aarch64
|
||||
;;
|
||||
armv7l|arm)
|
||||
archname=armhf
|
||||
suffix=armv7l
|
||||
;;
|
||||
*)
|
||||
echo "Unkown architecture"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
APP_IMG="/tmp/appimagetool.AppImage"
|
||||
APP_RUNT="/tmp/runtime-$archname"
|
||||
APP_DIR="/tmp/antos.AppDir"
|
||||
NAME="AntOS_${tag}_${archname}"
|
||||
[ -f "$APP_IMG" ] || wget --no-check-certificate -O $APP_IMG https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||
chmod +x $APP_IMG
|
||||
[ -f "$APP_RUNT" ] || wget -O $APP_RUNT --no-check-certificate https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-$archname
|
||||
|
||||
|
||||
[ -d "$APP_DIR" ] && rm -rf "$APP_DIR"
|
||||
|
||||
echo "Building app image for $arch"
|
||||
|
||||
mkdir -p "$APP_DIR"
|
||||
|
||||
cp -rf $DIR/opt "$APP_DIR"
|
||||
rm -rf $APP_DIR/opt/www/include || true
|
||||
rm -rf $APP_DIR/opt/www/etc/* || true
|
||||
|
||||
# antd-config
|
||||
cat << "EOF" >> $APP_DIR/opt/www/etc/antd-config.ini
|
||||
[SERVER]
|
||||
# DONOT edit following options
|
||||
plugins=./opt/www/lib/
|
||||
plugins_ext=.so
|
||||
# These options can be changed
|
||||
tmpdir=/tmp/
|
||||
database=/tmp/antos_db/
|
||||
maxcon=500
|
||||
backlog=5000
|
||||
workers = 4
|
||||
max_upload_size = 20000000
|
||||
gzip_enable = 1
|
||||
gzip_types = text\/.*,.*\/css.*,.*\/json.*,.*\/javascript.*
|
||||
debug_enable = 0
|
||||
# if SSL is enable on one port, one should specify
|
||||
# the SSL cert and key files
|
||||
# Example: self signed key
|
||||
# openssl genrsa -des3 -passout pass:1234 -out keypair.key 2048
|
||||
# openssl rsa -passin pass:1234 -in keypair.key -out server.key
|
||||
# openssl req -new -key server.key -out server.csr
|
||||
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
|
||||
# ssl.cert=/opt/www/server.crt
|
||||
# ssl.key=/opt/www/server.key
|
||||
# ssl.cipher=ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
|
||||
|
||||
[PORT:8888]
|
||||
plugins = fcgi,tunnel,wvnc
|
||||
# DONOT edit this option
|
||||
htdocs=./opt/www/htdocs
|
||||
# Edit this option to enable SSL
|
||||
ssl.enable=0
|
||||
; other config shoud be rules applied on this port
|
||||
; For example the following rule will
|
||||
; convert a request of type:
|
||||
; name.example.com?rq=1
|
||||
;TO:
|
||||
; example.com/name/?rq=1
|
||||
; this is helpful to redirect many sub domains
|
||||
; to a sub folder of the same server
|
||||
; ^([a-zA-Z][a-zA-Z0-9]*)\.[a-zA-Z0-9]+\..*$ = /<1><url>?<query>
|
||||
; Sytax: [regular expression on the original request]=[new request rule]
|
||||
^/os/(.*)$ = /os/router.lua?r=<1>&<query>
|
||||
|
||||
|
||||
[MIMES]
|
||||
image/bmp=bmp
|
||||
image/jpeg=jpg,jpeg
|
||||
text/css=css
|
||||
text/markdown=md
|
||||
text/csv=csv
|
||||
application/pdf=pdf
|
||||
image/gif=gif
|
||||
text/html=html,htm,chtml
|
||||
application/json=json
|
||||
application/javascript=js
|
||||
image/png=png
|
||||
image/x-portable-pixmap=ppm
|
||||
application/x-rar-compressed=rar
|
||||
image/tiff=tiff
|
||||
application/x-tar=tar
|
||||
text/plain=txt
|
||||
application/x-font-ttf=ttf
|
||||
application/xhtml+xml=xhtml
|
||||
application/xml=xml
|
||||
application/zip=zip
|
||||
image/svg+xml=svg
|
||||
application/vnd.ms-fontobject=eot
|
||||
application/x-font-woff=woff,woff2
|
||||
application/x-font-otf=otf
|
||||
audio/mpeg=mp3,mpeg
|
||||
|
||||
[PLUGIN:fcgi]
|
||||
name = fcgi
|
||||
autoload = 1
|
||||
file_type = lua
|
||||
bin = ./opt/www/bin/luad
|
||||
socket = unix:/tmp/fcgi.sock
|
||||
|
||||
[PLUGIN:tunnel]
|
||||
autoload = 1
|
||||
name = tunnel
|
||||
hotlines = unix:/tmp/antd_hotline.sock
|
||||
EOF
|
||||
|
||||
# runner
|
||||
cat << "EOF" >> $APP_DIR/opt/www/etc/runner.ini
|
||||
[vterm]
|
||||
# Do not change these 2 options
|
||||
exec = ./opt/www/bin/vterm
|
||||
param = unix:/tmp/antd_hotline.sock
|
||||
# change this to enable debug
|
||||
debug = 0
|
||||
|
||||
# used only by tunnel to authentificate user
|
||||
[tunnel_keychain]
|
||||
exec = ./opt/www/bin/wfifo
|
||||
param = unix:/tmp/antd_hotline.sock
|
||||
param = keychain
|
||||
param = /tmp/antunnel_keychain
|
||||
param = r
|
||||
debug = 1
|
||||
EOF
|
||||
|
||||
# AppRun
|
||||
cat << "EOF" >> $APP_DIR/AppRun
|
||||
#!/bin/sh
|
||||
set -e
|
||||
echo "Runing AntOS"
|
||||
W=$(realpath $1)
|
||||
B=$(dirname $0)
|
||||
cd $B
|
||||
[ ! -d "$W" ] && echo "$W is not a directory" && exit 1
|
||||
# start antd-tunnel service
|
||||
if [ ! -f "$W/antd-config.ini" ]; then
|
||||
cp ./opt/www/etc/antd-config.ini $W/antd-config.ini
|
||||
fi
|
||||
[ ! -f "$W/runner.ini" ] && cp ./opt/www/etc/runner.ini $W/runner.ini
|
||||
export LD_LIBRARY_PATH="$B/opt/www/lib/"
|
||||
echo "Runing Antd in $B with configuration $W/antd-config.ini"
|
||||
./opt/www/bin/antd $W/antd-config.ini >/dev/null 2>&1 | ( sleep 2 && ./opt/www/bin/runner $W/runner.ini >/dev/null 2>&1 &)
|
||||
EOF
|
||||
|
||||
chmod +x $APP_DIR/AppRun
|
||||
# desktop file
|
||||
cat << "EOF" >> $APP_DIR/antos.desktop
|
||||
[Desktop Entry]
|
||||
Name=AntOS
|
||||
Exec=antd
|
||||
Icon=antos
|
||||
Type=Application
|
||||
Categories=Utility;
|
||||
Terminal=true
|
||||
EOF
|
||||
|
||||
cp $logo $APP_DIR/antos.png
|
||||
|
||||
$APP_IMG --runtime-file $APP_RUNT $APP_DIR $DIR/$NAME.AppImage
|
64
scripts/mkdeb.sh
Executable file
64
scripts/mkdeb.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#! /bin/bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
TAG=$1
|
||||
ARCH=$2
|
||||
DIR=$3
|
||||
|
||||
[ -z "$TAG" ] && echo "Unknown version" && exit 1
|
||||
[ -z "$ARCH" ] && echo "Unknown architecture" && exit 1
|
||||
[ -z "$DIR" ] && echo "Unknown output dir" && exit 1
|
||||
|
||||
case $ARCH in
|
||||
amd64|x86_64)
|
||||
archname=amd64
|
||||
;;
|
||||
aarch64|arm64)
|
||||
archname=aarch64
|
||||
;;
|
||||
armv7l|arm)
|
||||
archname=armhf
|
||||
;;
|
||||
*)
|
||||
echo "Unkown architecture"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case $TAG in
|
||||
master)
|
||||
echo "Ignore TAG $TAG"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "build ANTOS deb package for version $TAG, architecture $ARCH"
|
||||
|
||||
NAME="AntOS_${TAG}_${archname}"
|
||||
FILE="$NAME.deb"
|
||||
TMP="/tmp/$NAME"
|
||||
[ -d "$TMP" ] && rm -rf "$TMP"
|
||||
mkdir -p $TMP
|
||||
|
||||
echo "Copying binaries of version $TAG, architecture $ARCH to $TMP"
|
||||
cp $DIR/opt $TMP/ -rf
|
||||
cd $TMP
|
||||
mkdir DEBIAN
|
||||
|
||||
cat << EOF >> DEBIAN/control
|
||||
Package: AntOS
|
||||
Version: $TAG
|
||||
Architecture: $archname
|
||||
Depends: libsqlite3-0,zlib1g,libreadline8,libssl1.1,libvncclient1,libjpeg-turbo8 | libturbojpeg0
|
||||
Maintainer: Dany LE <mrsang@iohub.dev>
|
||||
Description: All-in-one AntOS remote web-based desktop environment
|
||||
EOF
|
||||
cat DEBIAN/control
|
||||
cd ..
|
||||
dpkg-deb --build $TMP
|
||||
mv "$FILE" "$DIR/"
|
||||
|
Reference in New Issue
Block a user