Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #21136: Minify js produced by elm - plugins #473

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 0 additions & 25 deletions api-authorizations/src/main/elm/build-app.sh

This file was deleted.

8 changes: 8 additions & 0 deletions api-authorizations/src/main/elm/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

# we want that all elm-stuff stay in src/main/elm
# whatever the path from which this script is called
export ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"

. ../../../../plugins-common/elm.sh SupervisedTargets "$@"
. ../../../../plugins-common/elm.sh WorkflowUsers "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class ApiAccountsExtension(val status: PluginStatus)(implicit val ttag: ClassTag
<div>
<head_merge>
<link rel="stylesheet" type="text/css" href="/toserve/apiauthorizations/media.css" media="screen" data-lift="with-cached-resource" />
<script type="text/javascript" data-lift="with-cached-resource" src="/toserve/apiauthorizations/api-authorizations.js"></script>
<script type="text/javascript" data-lift="with-cached-resource" src="/toserve/apiauthorizations/rudder-apiauthorizations.js"></script>
</head_merge>
<div id="acl-configuration" ng-if="myNewAccount.authorizationType === 'acl'">
<!-- load elm app -->
Expand Down
24 changes: 0 additions & 24 deletions auth-backends/src/main/elm/build-app.sh

This file was deleted.

7 changes: 7 additions & 0 deletions auth-backends/src/main/elm/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

# we want that all elm-stuff stay in src/main/elm
# whatever the path from which this script is called
export ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"

. ../../../../plugins-common/elm.sh AuthBackends "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<head_merge>
<title>Rudder :: Authentication Backends</title>
<link rel="stylesheet" type="text/css" href="/toserve/authbackends/auth-backends.css" media="screen" data-lift="with-cached-resource">
<script src="/toserve/authbackends/auth-backends.js" data-lift="with-cached-resource"></script>
<script src="/toserve/authbackends/rudder-authbackends.js" data-lift="with-cached-resource"></script>
<link rel="stylesheet" type="text/css" href="/toserve/authbackends/toasty.css" media="screen" data-lift="with-cached-resource">
</head_merge>

Expand Down
31 changes: 0 additions & 31 deletions branding/src/main/elm/build-app.sh

This file was deleted.

2 changes: 1 addition & 1 deletion branding/src/main/elm/build-dev.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"
cd $ELM_DIR

./build-app.sh
./build.sh
cp generated/* ../../../target/classes/toserve/branding
7 changes: 7 additions & 0 deletions branding/src/main/elm/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

# we want that all elm-stuff stay in src/main/elm
# whatever the path from which this script is called
export ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"

. ../../../../plugins-common/elm.sh Branding "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<meta charset="utf8" />
<link rel="stylesheet" type="text/css" href="/toserve/branding/toasty.css" media="screen" data-lift="with-cached-resource">
<link rel="stylesheet" type="text/css" href="/toserve/branding/media.css" media="screen" data-lift="with-cached-resource">
<script src="/toserve/branding/branding.js" data-lift="with-cached-resource"></script>
<script src="/toserve/branding/rudder-branding.js" data-lift="with-cached-resource"></script>

</head_merge>
<main></main>
Expand Down
25 changes: 0 additions & 25 deletions change-validation/src/main/elm/build-app.sh

This file was deleted.

2 changes: 1 addition & 1 deletion change-validation/src/main/elm/build-dev.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"
cd $ELM_DIR

./build-app.sh
./build.sh
cp generated/* ../../../target/classes/toserve/changevalidation
cp ../resources/toserve/changevalidation/* ../../../target/classes/toserve/changevalidation
8 changes: 8 additions & 0 deletions change-validation/src/main/elm/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

# we want that all elm-stuff stay in src/main/elm
# whatever the path from which this script is called
export ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"

. ../../../../plugins-common/elm.sh SupervisedTargets "$@"
. ../../../../plugins-common/elm.sh WorkflowUsers "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<link rel="stylesheet" type="text/css" href="/toserve/changevalidation/change-validation.css" media="screen" data-lift="with-cached-resource">
<link rel="stylesheet" type="text/css" href="/toserve/changevalidation/toasty.css" media="screen" data-lift="with-cached-resource">
<script src="/toserve/changevalidation/change-validation.js" data-lift="with-cached-resource"></script>
<script src="/toserve/changevalidation/supervised-targets.js" data-lift="with-cached-resource"></script>
<script src="/toserve/changevalidation/WorkflowUsers.js" data-lift="with-cached-resource"></script>
<script src="/toserve/changevalidation/rudder-supervisedtargets.js" data-lift="with-cached-resource"></script>
<script src="/toserve/changevalidation/rudder-workflowusers.js" data-lift="with-cached-resource"></script>
</head_merge>

<div class="rudder-template">
Expand Down
54 changes: 54 additions & 0 deletions plugins-common/elm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#!/bin/bash

# Lib for building elm projects

# Similar to https://github.com/Normation/rudder/blob/master/webapp/sources/rudder/rudder-web/src/main/elm/build.sh
# Should be kept in sync

# Call without option for a dev build
# Call with --release for an optimized and minified build

# The argument is the name of the elm source to compile
app="$1"
app_l=$(echo "${app}" | tr '[:upper:]' '[:lower:]')

set -e

ELM="elm-0.19.1"

# ELM_DIR is set in every app build script before calling elm.sh
if [ -z $ELM_DIR ]; then
echo "Missing ELM_DIR variable"
exit 1
fi

if ! command -v ${ELM} &> /dev/null
then
echo "# ERROR: missing ${ELM} binary"
echo "# To install the right compiler version:"
echo ""
echo "$ curl -L -o ${ELM}.gz https://github.com/elm/compiler/releases/download/${ELM}/binary-for-linux-64-bit.gz"
echo "$ gzip -d ${ELM}.gz"
echo "$ chmod +x ${ELM}"
echo "# then put it somewhere in your PATH"
exit 1
fi

build_release() {
${ELM} make --optimize sources/${app}.elm --output=generated/rudder-${app_l}.js
terser generated/rudder-${app_l}.js --compress 'pure_funcs="F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | terser --mangle --output=generated/rudder-${app_l}.min.js
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this includes a dependency to terser that needs to be documented

# we use the same path for dev and prod so we can't really use .min.js
cp generated/rudder-${app_l}.min.js generated/rudder-${app_l}.js
}

build_dev() {
${ELM} make sources/${app}.elm --output=generated/rudder-${app_l}.js
}

# Warning: the current fs scheme does not allow multiple elm app in a plugin
cd ${ELM_DIR}/
if [ "$2" = "--release" ]; then
(set -x; build_release)
else
(set -x; build_dev)
fi
4 changes: 2 additions & 2 deletions plugins-common/pom-template.xml
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@
<goal>exec</goal>
</goals>
<configuration>
<executable>bash</executable>
<commandlineArgs>src/main/elm/build-app.sh</commandlineArgs>
<executable>src/main/elm/build.sh</executable>
<commandlineArgs>--release</commandlineArgs>
</configuration>
</execution>
</executions>
Expand Down
23 changes: 0 additions & 23 deletions user-management/src/main/elm/build-app.sh

This file was deleted.

2 changes: 1 addition & 1 deletion user-management/src/main/elm/build-dev.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"
cd $ELM_DIR

./build-app.sh
./build.sh
cp generated/* ../../../target/classes/toserve/usermanagement
cp ../resources/toserve/usermanagement/* ../../../target/classes/toserve/usermanagement
7 changes: 7 additions & 0 deletions user-management/src/main/elm/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

# we want that all elm-stuff stay in src/main/elm
# whatever the path from which this script is called
export ELM_DIR="$( cd "$( dirname "$0" )" && pwd )"

exec ../../../../plugins-common/elm.sh UserManagement "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<title>Plugin :: User Management</title>
<link rel="stylesheet" type="text/css" href="/toserve/usermanagement/user-management.css" media="screen" data-lift="with-cached-resource">
<link rel="stylesheet" type="text/css" href="/toserve/usermanagement/toasty.css" media="screen" data-lift="with-cached-resource">
<script src="/toserve/usermanagement/UserManagement.js" data-lift="with-cached-resource"></script>
<script src="/toserve/usermanagement/rudder-usermanagement.js" data-lift="with-cached-resource"></script>
</head_merge>


Expand Down