diff --git a/nix/dev-shell.nix b/nix/dev-shell.nix index 8558c7afa..5098e99b6 100644 --- a/nix/dev-shell.nix +++ b/nix/dev-shell.nix @@ -1,142 +1,145 @@ { mkShell , stdenv , lib , amqp-cpp , arcanist , aws-sdk-cpp , better-prompt , boost , c-ares_cmake-config , cargo , cmake , cmake-format , cocoapods , corrosion , cryptopp , darwin , double-conversion , folly , fmt , glog , grpc , gtest , libiconv , libuv , localstack , mariadb , mariadb-up , nodejs-16_x-openssl_1_1 , olm , openjdk8 , openssl , pkg-config , protobuf_3_15_cmake , python3 , redis , redis-up , rustc , rustup , shellcheck , sqlite , terraform , watchman , rustfmt , yarn }: mkShell { # programs which are meant to be executed should go here nativeBuildInputs = [ # generic development or tools arcanist shellcheck terraform # node development mariadb nodejs-16_x-openssl_1_1 yarn watchman # react native python3 redis # native dependencies # C/CXX toolchains are already brought in with mkShell # Identity Service cargo # includes rustc rustc # allow for direct invocation of rustc rustfmt rustup # Tunnelbroker + CMake amqp-cpp c-ares_cmake-config cryptopp cmake cmake-format # linting libuv # Localstack is currently broken by partial update # See https://github.com/NixOS/nixpkgs/pull/197572 #localstack pkg-config protobuf_3_15_cmake grpc ] ++ lib.optionals stdenv.isDarwin [ cocoapods # needed for ios ]; # include any libraries buildInputs buildInputs = [ # protobuf exposes both a library and a command # thus should appear in both inputs protobuf_3_15_cmake aws-sdk-cpp # tunnelbroker corrosion # tunnelbroker double-conversion # tunnelbroker glog # tunnelbroker gtest # testing services folly # cpp tools fmt # needed for folly boost # needed for folly olm # needed for CryptoTools sqlite # needed for sqlite_orm openssl # needed for grpc ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security libiconv # identity service ]); JAVA_HOME = openjdk8.passthru.home; # shell commands to be ran upon entering shell shellHook = '' PRJ_ROOT=$(git rev-parse --show-toplevel) # Set development environment variable defaults source "${../scripts/source_development_defaults.sh}" # Cache development path for some use cases such as XCode "$PRJ_ROOT/scripts/save_path.sh" '' # Darwin condition can be removed once linux services are supported + lib.optionalString stdenv.isDarwin '' # Start MariaDB development services "${mariadb-up}"/bin/mariadb-up & mariadb_pid=$! "${redis-up}"/bin/redis-up & redis_pid=$! wait "$mariadb_pid" "$redis_pid" '' + '' + # Render default configuration for keyserver + $PRJ_ROOT/scripts/create_url_facts.sh + # Provide decent bash prompt source "${better-prompt}/bin/better-prompt" echo "Welcome to Comm dev environment! :)" ''; } diff --git a/scripts/create_url_facts.sh b/scripts/create_url_facts.sh new file mode 100755 index 000000000..cdcbc1ae6 --- /dev/null +++ b/scripts/create_url_facts.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -euo pipefail + +SCRIPT_DIR=$(cd "$(dirname "$0")" || true; pwd -P) +ROOT_DIR="${SCRIPT_DIR}/.." +KEYSERVER_FACTS_DIR="${ROOT_DIR}/keyserver/facts" +COMMAPP_URL_PATH="${KEYSERVER_FACTS_DIR}/commapp_url.json" +LANDING_URL_PATH="${KEYSERVER_FACTS_DIR}/landing_url.json" + +if [[ ! -d "$KEYSERVER_FACTS_DIR" ]]; then + mkdir -p "$KEYSERVER_FACTS_DIR" +fi + +if [[ ! -f "$COMMAPP_URL_PATH" ]]; then + cp "$SCRIPT_DIR/templates/commapp_url.json" "$COMMAPP_URL_PATH" +fi + +if [[ ! -f "$LANDING_URL_PATH" ]]; then + cp "$SCRIPT_DIR/templates/landing_url.json" "$LANDING_URL_PATH" +fi diff --git a/scripts/templates/commapp_url.json b/scripts/templates/commapp_url.json new file mode 100644 index 000000000..42518df6c --- /dev/null +++ b/scripts/templates/commapp_url.json @@ -0,0 +1,7 @@ +{ + "baseDomain": "http://localhost:3000", + "basePath": "/comm/", + "baseRoutePath": "/comm/", + "https": false, + "proxy": "none" +} diff --git a/scripts/templates/landing_url.json b/scripts/templates/landing_url.json new file mode 100644 index 000000000..faa35127b --- /dev/null +++ b/scripts/templates/landing_url.json @@ -0,0 +1,7 @@ +{ + "baseDomain": "http://localhost:3000", + "basePath": "/commlanding/", + "baseRoutePath": "/commlanding/", + "https": false, + "proxy": "none" +}