fix: JupyterHub Dockerfile - add eric user, sudo, fix DB path (4 slashes)
This commit is contained in:
76
configuration/ditto/fix-jar.sh
Normal file
76
configuration/ditto/fix-jar.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
WORKDIR=/tmp/ditto-jar-mod
|
||||
rm -rf $WORKDIR && mkdir -p $WORKDIR
|
||||
|
||||
echo "=== Extracting JAR ==="
|
||||
cd $WORKDIR
|
||||
docker run --rm eclipse/ditto-gateway:latest cat /opt/ditto/ditto-gateway-service-3.8.12-allinone.jar > ditto-gateway-service-3.8.12-allinone.jar
|
||||
jar xf ditto-gateway-service-3.8.12-allinone.jar reference.conf
|
||||
|
||||
echo "=== Original reference.conf tail ==="
|
||||
tail -5 reference.conf
|
||||
|
||||
echo "=== Adding auth config to reference.conf ==="
|
||||
# Remove the last closing brace, add our config, re-add the closing brace
|
||||
# The reference.conf ends with nested braces - find the very last line
|
||||
python3 << 'PYEOF'
|
||||
with open("/tmp/ditto-jar-mod/reference.conf", "r") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
# Find the last non-empty line that is just a closing brace
|
||||
# We need to insert our config before the outermost closing brace
|
||||
|
||||
# Simple approach: append before the very last }
|
||||
# Count total closing braces at the end
|
||||
content = "".join(lines)
|
||||
|
||||
# The reference.conf has a complex nested structure
|
||||
# We'll add our ditto config as a new root-level block at the end
|
||||
# We need to close the last block and add a comma, then our new block
|
||||
|
||||
# Actually, simpler: just append if the file ends with }
|
||||
# Find the position of the very last }
|
||||
last_brace_pos = content.rfind('}')
|
||||
if last_brace_pos >= 0:
|
||||
# Check if there's content after the last } (like kamon.conf include)
|
||||
rest = content[last_brace_pos+1:].strip()
|
||||
if rest:
|
||||
# There's content after the last }, our approach is wrong
|
||||
print(f"Content after last }}: {rest[:100]}")
|
||||
# Insert before the last } with a comma
|
||||
new_content = content[:last_brace_pos].rstrip()
|
||||
# Remove trailing comma if present
|
||||
if new_content.endswith(','):
|
||||
new_content = new_content[:-1]
|
||||
new_content += ',\n\n# Custom auth overrides\n' + rest[:0] + '\n' + ' authentication {\n pre-authentication {\n enabled = true\n }\n devops {\n secured = false\n }\n }\n}\n'
|
||||
# Just append
|
||||
new_content = content.rstrip() + '\n\n# Custom auth overrides\nditto {\n gateway {\n authentication {\n pre-authentication {\n enabled = true\n }\n devops {\n secured = false\n }\n }\n }\n}\n'
|
||||
else:
|
||||
# Last char is }, replace it with our config + }
|
||||
new_content = content[:last_brace_pos].rstrip()
|
||||
# Remove trailing comma
|
||||
if new_content.endswith(','):
|
||||
new_content = new_content[:-1]
|
||||
new_content += ',\n\n# Custom auth overrides\n gateway {\n authentication {\n pre-authentication {\n enabled = true\n }\n devops {\n secured = false\n }\n }\n }\n}\n'
|
||||
else:
|
||||
new_content = content
|
||||
|
||||
with open("/tmp/ditto-jar-mod/reference.conf", "w") as f:
|
||||
f.write(new_content)
|
||||
|
||||
print("reference.conf modified successfully")
|
||||
PYEOF
|
||||
|
||||
echo "=== Modified reference.conf tail ==="
|
||||
tail -20 reference.conf
|
||||
|
||||
echo "=== Updating JAR (replacing reference.conf) ==="
|
||||
jar uf ditto-gateway-service-3.8.12-allinone.jar reference.conf
|
||||
|
||||
echo "=== Verifying modified reference.conf in JAR ==="
|
||||
jar xf ditto-gateway-service-3.8.12-allinone.jar reference.conf
|
||||
grep -c "pre-authentication" reference.conf || echo "NOT FOUND in JAR"
|
||||
|
||||
echo "=== Done. JAR is ready at $WORKDIR ==="
|
||||
Reference in New Issue
Block a user