diff --git a/embed/.gitignore b/embed/.gitignore new file mode 100644 index 00000000..a56a7ef4 --- /dev/null +++ b/embed/.gitignore @@ -0,0 +1,2 @@ +node_modules + diff --git a/embed/minimize.sh b/embed/minimize.sh index 6f924f26..137d0202 100755 --- a/embed/minimize.sh +++ b/embed/minimize.sh @@ -1,58 +1,11 @@ #!/bin/bash -CHANGES="$(git diff --name-only --cached | grep embed/)"; -readarray -t CHANGES <<<"$CHANGES"; - -elementIn () { - local e match="$1"; - shift; - for e; do [[ "$e" == "$match" ]] && return 0; done; - return 1; +function checkDeps { + command -v curl >/dev/null 2>&1 && return 0 + echo "ERROR: Please install npm" >&2 + return 1 } -echo "Minimizing player code.."; +checkDeps || return 1 +npm run minimize -echo " Minimizing JS.."; - -# if elementIn "embed/util.js" "${CHANGES[@]}" || elementIn "embed/skins.js" "${CHANGES[@]}" || elementIn "embed/controls.js" "${CHANGES[@]}" || elementIn "embed/player.js" "${CHANGES[@]}" ; then - echo " Minimizing 'util.js skins.js controls.js player.js' into 'min/player.js'.."; - terser -mc -o min/player.js -- util.js skins.js controls.js player.js -#fi -echo " Done."; - -echo " Minimizing wrappers.." - -#if elementIn "embed/wrappers/dashjs.js" "${CHANGES[@]}"; then - echo " Minimizing dashjs"; - terser -mn -o min/wrappers/dashjs.js -- wrappers/dashjs.js -#fi -#if elementIn "embed/wrappers/flash_strobe.js" "${CHANGES[@]}"; then - echo " Minimizing flash_strobe"; - terser -mn -o min/wrappers/flash_strobe.js -- wrappers/flash_strobe.js -#fi -#if elementIn "embed/wrappers/html5.js" "${CHANGES[@]}"; then - echo " Minimizing html5"; - terser -mn -o min/wrappers/html5.js -- wrappers/html5.js -#fi -#if elementIn "embed/wrappers/videojs.js" "${CHANGES[@]}"; then - echo " Minimizing videojs"; - terser -mn -o min/wrappers/videojs.js -- wrappers/videojs.js -#fi -#if elementIn "embed/wrappers/webrtc.js" "${CHANGES[@]}"; then - echo " Minimizing webrtc"; - terser -mn -o min/wrappers/webrtc.js -- wrappers/webrtc.js -#fi -echo " Done."; - -echo " Minimizing CSS.."; - -#if elementIn "embed/skins/default.css" "${CHANGES[@]}" || elementIn "embed/skins/general.css" "${CHANGES[@]}"; #then - echo " Minimizing default"; - cleancss --format keep-breaks -o min/skins/default.css skins/general.css skins/default.css -#fi -#if elementIn "embed/skins/default.css" "${CHANGES[@]}" || elementIn "embed/skins/general.css" "${CHANGES[@]}" || elementIn "embed/skins/dev.css" "${CHANGES[@]}"; then - echo " Minimizing dev"; - cleancss --format keep-breaks -o min/skins/dev.css skins/general.css skins/default.css skins/dev.css -#fi -echo " Done."; -echo "Done."; diff --git a/embed/minimize_internal.sh b/embed/minimize_internal.sh new file mode 100755 index 00000000..6f924f26 --- /dev/null +++ b/embed/minimize_internal.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +CHANGES="$(git diff --name-only --cached | grep embed/)"; +readarray -t CHANGES <<<"$CHANGES"; + +elementIn () { + local e match="$1"; + shift; + for e; do [[ "$e" == "$match" ]] && return 0; done; + return 1; +} + +echo "Minimizing player code.."; + +echo " Minimizing JS.."; + +# if elementIn "embed/util.js" "${CHANGES[@]}" || elementIn "embed/skins.js" "${CHANGES[@]}" || elementIn "embed/controls.js" "${CHANGES[@]}" || elementIn "embed/player.js" "${CHANGES[@]}" ; then + echo " Minimizing 'util.js skins.js controls.js player.js' into 'min/player.js'.."; + terser -mc -o min/player.js -- util.js skins.js controls.js player.js +#fi +echo " Done."; + +echo " Minimizing wrappers.." + +#if elementIn "embed/wrappers/dashjs.js" "${CHANGES[@]}"; then + echo " Minimizing dashjs"; + terser -mn -o min/wrappers/dashjs.js -- wrappers/dashjs.js +#fi +#if elementIn "embed/wrappers/flash_strobe.js" "${CHANGES[@]}"; then + echo " Minimizing flash_strobe"; + terser -mn -o min/wrappers/flash_strobe.js -- wrappers/flash_strobe.js +#fi +#if elementIn "embed/wrappers/html5.js" "${CHANGES[@]}"; then + echo " Minimizing html5"; + terser -mn -o min/wrappers/html5.js -- wrappers/html5.js +#fi +#if elementIn "embed/wrappers/videojs.js" "${CHANGES[@]}"; then + echo " Minimizing videojs"; + terser -mn -o min/wrappers/videojs.js -- wrappers/videojs.js +#fi +#if elementIn "embed/wrappers/webrtc.js" "${CHANGES[@]}"; then + echo " Minimizing webrtc"; + terser -mn -o min/wrappers/webrtc.js -- wrappers/webrtc.js +#fi +echo " Done."; + +echo " Minimizing CSS.."; + +#if elementIn "embed/skins/default.css" "${CHANGES[@]}" || elementIn "embed/skins/general.css" "${CHANGES[@]}"; #then + echo " Minimizing default"; + cleancss --format keep-breaks -o min/skins/default.css skins/general.css skins/default.css +#fi +#if elementIn "embed/skins/default.css" "${CHANGES[@]}" || elementIn "embed/skins/general.css" "${CHANGES[@]}" || elementIn "embed/skins/dev.css" "${CHANGES[@]}"; then + echo " Minimizing dev"; + cleancss --format keep-breaks -o min/skins/dev.css skins/general.css skins/default.css skins/dev.css +#fi +echo " Done."; +echo "Done."; diff --git a/embed/package.json b/embed/package.json new file mode 100644 index 00000000..84a3de60 --- /dev/null +++ b/embed/package.json @@ -0,0 +1,12 @@ +{ + "name": "mistserver-metaplayer", + "version": "3.1.0", + "description": "Meta-player for use with MistServer", + "scripts": { + "minimize": "./minimize_internal.sh" + }, + "dependencies": { + "clean-css-cli": "^4.2.1", + "terser": "^3.17.0" + } +}