playbooks/roles/ood-applications/files/bc_codeserver/template/script.sh.erb (39 lines of code) (raw):

#!/usr/bin/env bash <% # Set our working directory. working_dir = Pathname.new(context.working_dir) # Ensure that code-server always starts up in either a user defined directory or the home directory. if ! working_dir.exist? working_dir = Pathname.new(ENV['HOME']) elsif working_dir.file? working_dir = working_dir.parent end %> if ! which code-server; then mkdir -p /mnt/resource/$USER pushd /mnt/resource/$USER curl -fsSL https://code-server.dev/install.sh | sh -s -- --version 4.8.3 --method standalone --prefix /mnt/resource/$USER popd fi export PATH=/mnt/resource/$USER/bin:$PATH CODE_SERVER_DATAROOT="$HOME/.local/share/code-server" # Expose the password to the server. export PASSWORD="$password" # Print compute node. echo "$(date): Running on compute node ${compute_node}:$port" # # Start Code Server. # echo "$(date): Started code-server" echo "" # Remove scheduler environment variables to make code server a login node unset $(compgen -e SLURM_) unset $(compgen -e PBS_) code-server \ --auth="password" \ --bind-addr="0.0.0.0:${port}" \ --disable-telemetry \ --user-data-dir="$CODE_SERVER_DATAROOT" \ --log debug \ --ignore-last-opened \ "<%= working_dir.to_s %>"