From 41b99c101909a3f7f0bbd1928145279d46c34cf1 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Wed, 1 Dec 2021 18:12:53 +0530 Subject: [PATCH] LibreJS processing: Apply X11 and Apache-2.0 to widget JavaScript code to permit proprietary integration. --- scripts/librejs.sh | 72 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/scripts/librejs.sh b/scripts/librejs.sh index c0f6cd33..2418a4d7 100755 --- a/scripts/librejs.sh +++ b/scripts/librejs.sh @@ -1,18 +1,78 @@ #!/bin/bash -readonly DIST=static/cache/bundle/ +set -Eeuo pipefail +trap cleanup SIGINT SIGTERM ERR EXIT -readonly LICENSE_START="// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0" +readonly PROJECT_ROOT=$(realpath $(dirname $(dirname "${BASH_SOURCE[0]}"))) +readonly DIST=$PROJECT_ROOT/static/cache/bundle/ readonly SOURCE="// @source https://github.com/mCaptcha/mCaptcha" readonly LICENSE_END="// @license-end" -echo $LICENSE_START -echo $LICENSE_END +cleanup() { + trap - SIGINT SIGTERM ERR EXIT + # script cleanup here +} -for file in $(find ./static/cache/bundle/ -type f -a -name "*.js") +setup_colors() { + if [[ -t 2 ]] && [[ -z "${NO_COLOR-}" ]] && [[ "${TERM-}" != "dumb" ]]; then + NOCOLOR='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' YELLOW='\033[1;33m' + else + NOCOLOR='' RED='' GREEN='' ORANGE='' BLUE='' PURPLE='' CYAN='' YELLOW='' + fi +} + +msg() { + echo >&2 -e "${1-}" +} + +get_file_name() { + echo $file | rev | cut -d '/' -f 1 | rev +} + +print_license_msg() { + msg "${GREEN}[*] Applying $1 on $(get_file_name $2)" +} + +apply_agpl() { + print_license_msg "AGPL" $1 + local AGPL="// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0" + echo $AGPL >> $1 +} + +apply_x11() { + print_license_msg "X11" $1 + local MIT="// @license magnet:?xt=urn:btih:5305d91886084f776adcf57509a648432709a7c7&dn=x11.txt X11" + echo $MIT >> $1 +} + +apply_apache() { + print_license_msg "APACHE" $1 + local APACHE="// @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt Apache-2.0" + echo $APACHE >> $1 +} + +setup_colors + +for file in $(find $DIST -type f -a -name "*.js") do contents=$(cat $file) - echo $LICENSE_START > $file + : > $file + + name=$(get_file_name $file) + case $name in + "bundle.js") + apply_agpl $file + ;; + "verificationWidget.js") + apply_x11 $file + apply_apache $file + ;; + *) + msg "${RED}[!] License not configured for $name. Applying default license" + apply_agpl $file + ;; + esac + echo $SOURCE >> $file echo $contents >> $file echo $LICENSE_END >> $file