diff options
Diffstat (limited to 'frontend/cgi/live-build-cgi')
-rwxr-xr-x | frontend/cgi/live-build-cgi | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/frontend/cgi/live-build-cgi b/frontend/cgi/live-build-cgi deleted file mode 100755 index f812f0d6a..000000000 --- a/frontend/cgi/live-build-cgi +++ /dev/null @@ -1,220 +0,0 @@ -#!/bin/sh - -## live-build(7) - System Build Scripts -## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch> -## -## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING. -## This is free software, and you are welcome to redistribute it -## under certain conditions; see COPYING for details. - - -# Including common functions -. /usr/lib/live/build.sh - -# Reading defaults -if [ -r /etc/default/live-build-cgi ] -then - . /etc/default/live-build-cgi -else - echo "E: /etc/default/live-build-cgi missing" - exit 1 -fi - -_HOSTNAME="$(hostname -f)" - -# Turn on debug if true -if [ "${_DEBUG}" = "true" ] -then - set -x -fi - -# Sending http header -echo "Content-type: text/html" -echo - -# If we are passed something then read it in. -if [ "$REQUEST_METHOD" = "POST" ] && [ "$CONTENT_LENGTH" -gt 0 ] -then - #QUERY_STRING=`cat /dev/stdin` - QUERY_STRING=$(cat /dev/stdin) - #read -n $CONTENT_LENGTH POST_DATA <&0 -fi - -# Translate parameters -QUERY_STRING=$(echo "${POST_DATA}" | sed -e 's/%2F/\//g' -e 's/+/ /g' -e 's/%3B/;/g' -e 's/%7E/~/g' -e 's/%3A/:/g' -e 's/%40/@/g' -e 's/%3D/=/g' -e 's/%2B/+/g') -# Debug the filtering string -# echo ${QUERY_STRING} - - -# Sending html header -cat "${_TEMPLATES}"/header.html - -# CGI -if [ -z "${QUERY_STRING}" ] -then - # Sending html form - sed -e "s/VERSION/${VERSION}/" \ - -e "s/DATE/`date +%Y%m%d-%H:%M`/" \ - "${_TEMPLATES}"/form.html -else - # Converting spaces: sed 's/+/ /g' - # Converting '@': sed 's/%40/@/g' - # Converting ':': sed 's/%3A/:/g' - # Converting ';': sed 's/%3B/\;/g' - # Converting '/': sed 's/%2F/\//g' - # Converting '~': sed 's/%7E/\~/g' - # Converting '=': sed 's/%3D/=/g' - # Converting '+': sed 's/%2B/+/g' - - # Email - _EMAIL=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])email=[-0-9a-zA-Z._@]+' | cut -f 2 -d '=' | head -n1) - - # CGI Packages List - _LB_CGIPACKAGES=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])cgipackages=[-0-9a-zA-Z. _+]+' | cut -f 2 -d '=' | head -n1) - - # CGI Config for git - _LB_CONFIG=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])config=[-a-z]+' | cut -f 2 -d '=' | head -n1) - - # Standard options - LB_BINARY_IMAGES=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])binary_images=[-a-z]+' | cut -f 2 -d '=' | head -n1) - LB_DISTRIBUTION=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])distribution=[a-z]+' | cut -f 2 -d '=' | head -n1) - LB_APT=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])apt=[a-u]+' | cut -f 2 -d '=' | head -n1) - - # Advanced bootstrap options - LB_ARCHITECTURES=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])architectures=[0-9a-z]+' | cut -f 2 -d '=' | head -n1) - LB_ARCHIVE_AREAS=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])archive_areas=[a-z]+' | cut -f 2 -d '=' | head -n1) - - # Advanced chroot options - LB_CHROOT_FILESYSTEM=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])chroot_filesystem=[0-9a-z]+' | cut -f 2 -d '=' | head -n1) - LB_LINUX_FLAVOURS=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])linux_flavours=[-0-9a-z]+' | cut -f 2 -d '=' | head -n1) - LB_SECURITY=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])security=[a-z]+' | cut -f 2 -d '=' | head -n1) - - # Advanced binary options - LB_APT_INDICES=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])apt_indices=[a-z]+' | cut -f 2 -d '=' | head -n1) - LB_BOOTAPPEND_INSTALL=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])bootappend_install=[-0-9a-zA-Z. _+=:/]+' | cut -f2- -d '=' | head -n1) - LB_BOOTAPPEND_LIVE=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])bootappend_live=[-0-9a-zA-Z. _+=:/]+' | cut -f2- -d '=' | head -n1) - LB_BOOTLOADER=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])bootloader=[a-z]+' | cut -f 2 -d '=' | head -n1) - LB_DEBIAN_INSTALLER=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])debian_installer=[a-z]+' | cut -f 2 -d '=' | head -n1) - LB_ISO_APPLICATION=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])iso_application=[-0-9a-zA-Z. ~;:/_]+' | cut -f 2 -d '=' | head -n1) - LB_ISO_PREPARER=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])iso_preparer=[-0-9a-zA-Z. ~;:/_]+' | cut -f 2 -d '=' | head -n1) - LB_ISO_PUBLISHER=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])iso_publisher=[-0-9a-zA-Z. ~;:/_@]+' | cut -f 2 -d '=' | head -n1) - LB_ISO_VOLUME=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])iso_volume=[-0-9a-zA-Z. ~;:/_]+' | cut -f 2 -d '=' | head -n1) - LB_MEMTEST=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])memtest=[0-9a-z+]+' | cut -f 2 -d '=' | head -n1) - LB_NET_ROOT_PATH=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])net_path=[-0-9a-zA-Z._/]+' | cut -f 2 -d '=' | head -n1) - LB_NET_ROOT_SERVER=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])net_server=[0-9.]+' | cut -f 2 -d '=' | head -n1) - - # Advanced source options - LB_SOURCE=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])source=[a-z]+' | cut -f 2 -d '=' | head -n1) - LB_SOURCE_IMAGES=$(echo "${QUERY_STRING}" | grep -oE '(^|[?&])source_images=[a-z]+' | cut -f 2 -d '=' | head -n1) - - # FIXME: filter invalid options - unset QUERY_STRING - - if [ -z "${_EMAIL}" ] - then - echo "<h2><div style='color: red;'>Error: No email address specified.</div></h2>" - - sed -e "s/VERSION/${VERSION}/" \ - -e "s/DATE/`date +%Y%m%d-%H:%M`/" \ - "${_TEMPLATES}"/form.html - - exit - fi - - # Getting build identifier - _BUILD=$(date +%Y%m%d.%H%M%S.%N) - - # Getting number of builds pending. - _QUEUENUM=$(ls "${_TEMPDIR}"/*.build | wc -l) - - #echo "${QUERY_STRING}" - # Sending html confirmation - # Note: On each string remember to use a delimeter that is not in the string. - sed -e "s/BUILD/${_BUILD}/g" \ - -e "s/EMAIL/${_EMAIL}/" \ - -e "s/QUEUENUM/${_QUEUENUM}/" \ - -e "s/LB_BINARY_IMAGES/${LB_BINARY_IMAGES}/" \ - -e "s/LB_DISTRIBUTION/${LB_DISTRIBUTION}/" \ - -e "s#_LB_CONFIG#${_LB_CONFIG}#" \ - -e "s/LB_APT_INDICES/${LB_APT_INDICES}/" \ - -e "s/LB_APT/${LB_APT}/" \ - -e "s/_LB_CGIPACKAGES/${_LB_CGIPACKAGES}/" \ - -e "s/LB_ARCHITECTURES/${LB_ARCHITECTURES}/" \ - -e "s/LB_ARCHIVE_AREAS/${LB_ARCHIVE_AREAS}/" \ - -e "s/LB_CHROOT_FILESYSTEM/${LB_CHROOT_FILESYSTEM}/" \ - -e "s/LB_LINUX_FLAVOURS/${LB_LINUX_FLAVOURS}/" \ - -e "s/LB_SECURITY/${LB_SECURITY}/" \ - -e "s#LB_BOOTAPPEND_INSTALL#${LB_BOOTAPPEND_INSTALL}#" \ - -e "s#LB_BOOTAPPEND_LIVE#${LB_BOOTAPPEND_LIVE}#" \ - -e "s/LB_BOOTLOADER/${LB_BOOTLOADER}/" \ - -e "s/LB_DEBIAN_INSTALLER/${LB_DEBIAN_INSTALLER}/" \ - -e "s#LB_ISO_APPLICATION#${LB_ISO_APPLICATION}#" \ - -e "s#LB_ISO_PREPARER#${LB_ISO_PREPARER}#" \ - -e "s#LB_ISO_PUBLISHER#${LB_ISO_PUBLISHER}#" \ - -e "s#LB_ISO_VOLUME#${LB_ISO_VOLUME}#" \ - -e "s/LB_MEMTEST/${LB_MEMTEST}/" \ - -e "s#LB_NET_ROOT_PATH#${LB_NET_ROOT_PATH}#" \ - -e "s/LB_NET_ROOT_SERVER/${LB_NET_ROOT_SERVER}/" \ - -e "s#SERVER#${_SERVER}#g" \ - -e "s/LB_SOURCE_IMAGES/${LB_SOURCE_IMAGES}/" \ - -e "s/LB_SOURCE/${LB_SOURCE}/" \ - "${_TEMPLATES}"/build.html - - # Creating temporary directory - mkdir -p "${_TEMPDIR}" - -# Writing build file -cat > "${_TEMPDIR}"/"${_BUILD}".build << EOF -# live-build-cgi "${VERSION}" build file -# `date -R` - -_BUILD="${_BUILD}" -_EMAIL="${_EMAIL}" - -REMOTE_ADDR="${REMOTE_ADDR}" - -# CGI Packages List -_LB_CGIPACKAGES="${_LB_CGIPACKAGES}" - -# CGI Config for git -_LB_CONFIG="${_LB_CONFIG}" - -# Standard options -LB_BINARY_IMAGES="${LB_BINARY_IMAGES}" -LB_DISTRIBUTION="${LB_DISTRIBUTION}" -LB_APT="${LB_APT}" - -# Advanced bootstrap options -LB_ARCHITECTURES="${LB_ARCHITECTURES}" -LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS}" - -# Advanced chroot options -LB_CHROOT_FILESYSTEM="${LB_CHROOT_FILESYSTEM}" -LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS}" -LB_SECURITY="${LB_SECURITY}" - -# Advanced binary options -LB_APT_INDICES="${LB_APT_INDICES}" -LB_BOOTAPPEND_INSTALL="${LB_BOOTAPPEND_INSTALL}" -LB_BOOTAPPEND_LIVE="${LB_BOOTAPPEND_LIVE}" -LB_BOOTLOADER="${LB_BOOTLOADER}" -LB_DEBIAN_INSTALLER="${LB_DEBIAN_INSTALLER}" -LB_ISO_APPLICATION="${LB_ISO_APPLICATION}" -LB_ISO_PREPARER="${LB_ISO_PREPARER}" -LB_ISO_PUBLISHER="${LB_ISO_PUBLISHER}" -LB_ISO_VOLUME="${LB_ISO_VOLUME}" -LB_MEMTEST="${LB_MEMTEST}" -LB_NET_ROOT_PATH="${LB_NET_ROOT_PATH}" -LB_NET_ROOT_SERVER="${LB_NET_ROOT_SERVER}" - -# Advanced source options -LB_SOURCE_IMAGES="${LB_SOURCE_IMAGES}" -LB_SOURCE="${LB_SOURCE}" - -EOF - - echo "$(date +%b\ %d\ %H:%M:%S) ${_HOSTNAME} live-build-cgi: add web build (${_BUILD}) from ${REMOTE_ADDR}." >> /var/log/live/live-build-request - echo "$(date +%b\ %d\ %H:%M:%S) ${_HOSTNAME} live-build-cgi: options ${_BUILD} |email ${_EMAIL}|binary_images ${LB_BINARY_IMAGES}|distribution ${LB_DISTRIBUTION}|config ${_LB_CONFIG}|apt ${LB_APT}|cgipackages ${_LB_CGIPACKAGES}|architectures ${LB_ARCHITECTURES}|archive_areas ${LB_ARCHIVE_AREAS}|chroot_filesystem ${LB_CHROOT_FILESYSTEM}|linux_flavours ${LB_LINUX_FLAVOURS}|security ${LB_SECURITY}|apt_indices ${LB_APT_INDICES}|bootappend_install ${LB_BOOTAPPEND_INSTALL}|bootappend_live ${LB_BOOTAPPEND_LIVE}|bootloader ${LB_BOOTLOADER}|debian_installer ${LB_DEBIAN_INSTALLER}|iso_application ${LB_ISO_APPLICATION}|iso_preparer ${LB_ISO_PREPARER}|iso_publisher ${LB_ISO_PUBLISHER}|iso_volume ${LB_ISO_VOLUME}|memtest ${LB_MEMTEST}|net_path ${LB_NET_ROOT_PATH}|net_server ${LB_NET_ROOT_SERVER}|source_images ${LB_SOURCE_IMAGES}|sources ${LB_SOURCE}" >> /var/log/live/live-build-request -fi - -sed -e "s/VERSION/${VERSION}/" "${_TEMPLATES}"/footer.html |