#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# This registers the initialization code for the conda shell code
# It also activates default environment in the end, so we don't need to activate it manually
# Documentation: https://docs.conda.io/projects/conda/en/latest/dev-guide/deep-dives/activation.html
# Create necessary directories
mkdir -p /home/${NB_USER}/.local/share/code-server/extensions
mkdir -p /home/${NB_USER}/.ssh
if [[ ! -f "/home/${NB_USER}/.local/share/code-server/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json" ]]; then
echo "Initialization of MCP-related plugins"
# Copy and link extensions
cp /opt/code-server/extensions/extensions.json /home/${NB_USER}/.local/share/code-server/extensions/
find /opt/code-server/extensions -name 'saoudrizwan.claude-dev-*-universal' -type d -exec ln -sf {} "/home/${NB_USER}/.local/share/code-server/extensions/" \;
# Create settings directory and write configuration
mkdir -p /home/${NB_USER}/.local/share/code-server/User/globalStorage/saoudrizwan.claude-dev/settings
cat <<'EOF' > /home/${NB_USER}/.local/share/code-server/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"bioos": {
"command": "/opt/conda/bin/python",
"args": [
"/opt/lib/bioos-mcp-server/src/bioos_mcp/bioos_mcp_server.py"
],
"env": {
"PYTHONPATH": "/opt/lib/bioos-mcp-server/src"
},
"disabled": false,
"autoApprove": []
}
}
}
EOF
# Set permissions for server directory
chown -Rf "${NB_USER}:${NB_USER}" /opt/lib/bioos-mcp-server
# Expand the preset extensions for Code Server to centralized SSH remote environments
for server in .vscode-server .cursor-server .vscode-server-insiders; do
# Create directories
mkdir -p "/home/${NB_USER}/${server}/extensions"
mkdir -p "/home/${NB_USER}/${server}/data/User/globalStorage/saoudrizwan.claude-dev/settings"
# Copy settings and extensions
cp "/home/${NB_USER}/.local/share/code-server/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json" \
"/home/${NB_USER}/${server}/data/User/globalStorage/saoudrizwan.claude-dev/settings"
cp "/opt/code-server/extensions/extensions.json" "/home/${NB_USER}/${server}/extensions"
find /opt/code-server/extensions -name 'saoudrizwan.claude-dev-*-universal' -type d -exec ln -sf {} "/home/${NB_USER}/${server}/extensions" \;
# Set permissions
chown -Rf "${NB_USER}:${NB_USER}" "/home/${NB_USER}/${server}"
done
else
echo "The user already has a configuration file."
fi
# Set final permissions
chown "${NB_USER}:${NB_USER}" "/home/${NB_USER}"
chown -Rf "${NB_USER}:${NB_USER}" "/home/${NB_USER}/.local"
chown -Rf "${NB_USER}:${NB_USER}" "/home/${NB_USER}/.ssh"
chown "${NB_USER}:${NB_USER}" "/home/${NB_USER}/.bashrc"
chown -Rf "${NB_USER}:${NB_USER}" /opt/lib/bioos-mcp-server
chmod -R 755 "/home/${NB_USER}/.local"