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