aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/namespaces/default/hastebin/init-configmap.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/namespaces/default/hastebin/init-configmap.yaml')
-rw-r--r--kubernetes/namespaces/default/hastebin/init-configmap.yaml49
1 files changed, 49 insertions, 0 deletions
diff --git a/kubernetes/namespaces/default/hastebin/init-configmap.yaml b/kubernetes/namespaces/default/hastebin/init-configmap.yaml
new file mode 100644
index 0000000..906060f
--- /dev/null
+++ b/kubernetes/namespaces/default/hastebin/init-configmap.yaml
@@ -0,0 +1,49 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: hastebin-init
+data:
+ monkeypatch_extensions.sh: |
+ #!/bin/bash
+
+ ORIGINAL="file += '\.' + _this.lookupExtensionByType(ret\.language);"
+ PATCHED="\/\/file += '\.' + _this.lookupExtensionByType(ret\.language);"
+ FILENAME="static/application.js"
+
+ touch changed
+ sed -i "s/$ORIGINAL/$PATCHED/w changed" "$FILENAME"
+ init.sh: |
+ #!/bin/bash
+
+ # Clone the repo
+ git clone https://github.com/toptal/haste-server.git
+ cd haste-server
+
+ # Monkey patch - don't add extensions to the URLs.
+ #
+ # This is a pretty messy monkey patch, and it may break if the hastebin
+ # JS code changes significantly. It makes the URL display as "file"
+ # instead of "file.py" when you save a file, which makes it possible
+ # to share the URL without triggering Discord's suspicious URL filter.
+ cp /init/monkeypatch_extensions.sh ./monkeypatch_extensions.sh
+ chmod +x monkeypatch_extensions.sh
+ ./monkeypatch_extensions.sh
+
+ # Check if monkeypatch succeeded. Otherwise, fail hard.
+ if [ -s changed ]; then
+ echo "Monkey patch executed: Hastebin will no longer add extensions to URLs."
+ else
+ echo "Monkey patch for not adding extension could not be performed. Maybe the hastebin code has changed?"
+ exit 69
+ fi
+
+ # Install and start
+ npm install
+
+ set -e
+
+ # Generate the config file from the environment
+ node docker-entrypoint.js > config.js
+
+ # Start Hastebin
+ npm start