Merge remote-tracking branch 'crondiad/experiments' into experiments
This commit is contained in:
@@ -54,10 +54,9 @@ To run a more complete system, you also need to have docker compose installed.
|
|||||||
|
|
||||||
To hack on diachron itself, you need the following:
|
To hack on diachron itself, you need the following:
|
||||||
|
|
||||||
|
- bash
|
||||||
- docker and docker compose
|
- docker and docker compose
|
||||||
- [fd](https://github.com/sharkdp/fd)
|
- [fd](https://github.com/sharkdp/fd)
|
||||||
- golang, version 1.23.6 or greater
|
- golang, version 1.23.6 or greater
|
||||||
- shellcheck
|
- shellcheck
|
||||||
- shfmt
|
- shfmt
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,8 @@
|
|||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
node_shim_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
node_shim_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
export node_shim_DIR
|
|
||||||
|
|
||||||
source "$node_shim_DIR"/../versions
|
|
||||||
|
|
||||||
|
# shellcheck source=node.common
|
||||||
source "$node_shim_DIR"/node.common
|
source "$node_shim_DIR"/node.common
|
||||||
|
|
||||||
exec "$nodejs_binary_dir/node" "$@"
|
exec "$nodejs_binary_dir/node" "$@"
|
||||||
|
|||||||
@@ -2,23 +2,19 @@
|
|||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
node_common_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
node_common_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
project_root="$node_common_DIR/../.."
|
||||||
|
|
||||||
# FIXME this shouldn't be hardcoded here of course
|
# shellcheck source=../versions
|
||||||
nodejs_binary_dir="$node_common_DIR/../binaries/node-v22.15.1-linux-x64/bin"
|
source "$node_common_DIR"/../versions
|
||||||
|
|
||||||
|
nodejs_binary_dir="$project_root/$nodejs_bin_dir"
|
||||||
|
|
||||||
# This might be too restrictive. Or not restrictive enough.
|
# This might be too restrictive. Or not restrictive enough.
|
||||||
PATH="$nodejs_binary_dir":/bin:/usr/bin
|
PATH="$nodejs_binary_dir":/bin:/usr/bin
|
||||||
|
|
||||||
project_root="$node_common_DIR/../.."
|
node_dist_dir="$project_root/$nodejs_dist_dir"
|
||||||
|
|
||||||
node_dir="$project_root/$nodejs_binary_dir"
|
export NPM_CONFIG_PREFIX="$node_dist_dir/npm"
|
||||||
|
export NPM_CONFIG_CACHE="$node_dist_dir/cache"
|
||||||
export NPM_CONFIG_PREFIX="$node_dir/npm"
|
export NPM_CONFIG_TMP="$node_dist_dir/tmp"
|
||||||
export NPM_CONFIG_CACHE="$node_dir/cache"
|
export NODE_PATH="$node_dist_dir/node_modules"
|
||||||
export NPM_CONFIG_TMP="$node_dir/tmp"
|
|
||||||
export NODE_PATH="$node_dir/node_modules"
|
|
||||||
|
|
||||||
# echo $NPM_CONFIG_PREFIX
|
|
||||||
# echo $NPM_CONFIG_CACHE
|
|
||||||
# echo $NPM_CONFIG_TMP
|
|
||||||
# echo $NODE_PATH
|
|
||||||
|
|||||||
19
framework/versions
Normal file
19
framework/versions
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
# This file belongs to the framework. You are not expected to modify it.
|
||||||
|
|
||||||
|
# https://nodejs.org/dist
|
||||||
|
nodejs_binary_linux_x86_64=https://nodejs.org/dist/v24.12.0/node-v24.12.0-linux-x64.tar.xz
|
||||||
|
nodejs_checksum_linux_x86_64=bdebee276e58d0ef5448f3d5ac12c67daa963dd5e0a9bb621a53d1cefbc852fd
|
||||||
|
nodejs_dist_dir=framework/binaries/node-v22.15.1-linux-x64
|
||||||
|
nodejs_bin_dir="$nodejs_dist_dir/bin"
|
||||||
|
|
||||||
|
caddy_binary_linux_x86_64=fixme
|
||||||
|
caddy_checksum_linux_x86_64=fixmetoo
|
||||||
|
|
||||||
|
# https://github.com/pnpm/pnpm/releases
|
||||||
|
pnpm_binary_linux_x86_64=https://github.com/pnpm/pnpm/releases/download/v10.28.0/pnpm-linux-x64
|
||||||
|
pnpm_checksum_linux_x86_64=sha256:348e863d17a62411a65f900e8d91395acabae9e9237653ccc3c36cb385965f28
|
||||||
|
|
||||||
|
|
||||||
|
golangci_lint=v2.7.2-alpine
|
||||||
66
sync.sh
Executable file
66
sync.sh
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Note: This is kind of AI slop and needs to be more carefully reviewed.
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
# shellcheck source=framework/versions
|
||||||
|
source "$DIR/framework/versions"
|
||||||
|
|
||||||
|
# Ensure correct node version is installed
|
||||||
|
node_installed_checksum_file="$DIR/framework/binaries/.node.checksum"
|
||||||
|
node_installed_checksum=""
|
||||||
|
if [ -f "$node_installed_checksum_file" ]; then
|
||||||
|
node_installed_checksum=$(cat "$node_installed_checksum_file")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$node_installed_checksum" != "$nodejs_checksum_linux_x86_64" ]; then
|
||||||
|
echo "Downloading Node.js..."
|
||||||
|
node_archive="$DIR/framework/downloads/node.tar.xz"
|
||||||
|
curl -fsSL "$nodejs_binary_linux_x86_64" -o "$node_archive"
|
||||||
|
|
||||||
|
echo "Verifying checksum..."
|
||||||
|
echo "$nodejs_checksum_linux_x86_64 $node_archive" | sha256sum -c -
|
||||||
|
|
||||||
|
echo "Extracting Node.js..."
|
||||||
|
tar -xf "$node_archive" -C "$DIR/framework/binaries"
|
||||||
|
rm "$node_archive"
|
||||||
|
|
||||||
|
echo "$nodejs_checksum_linux_x86_64" >"$node_installed_checksum_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure correct pnpm version is installed
|
||||||
|
pnpm_binary="$DIR/framework/binaries/pnpm"
|
||||||
|
pnpm_installed_checksum_file="$DIR/framework/binaries/.pnpm.checksum"
|
||||||
|
pnpm_installed_checksum=""
|
||||||
|
if [ -f "$pnpm_installed_checksum_file" ]; then
|
||||||
|
pnpm_installed_checksum=$(cat "$pnpm_installed_checksum_file")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pnpm checksum includes "sha256:" prefix, strip it for sha256sum
|
||||||
|
pnpm_checksum="${pnpm_checksum_linux_x86_64#sha256:}"
|
||||||
|
|
||||||
|
if [ "$pnpm_installed_checksum" != "$pnpm_checksum" ]; then
|
||||||
|
echo "Downloading pnpm..."
|
||||||
|
curl -fsSL "$pnpm_binary_linux_x86_64" -o "$pnpm_binary"
|
||||||
|
|
||||||
|
echo "Verifying checksum..."
|
||||||
|
echo "$pnpm_checksum $pnpm_binary" | sha256sum -c -
|
||||||
|
|
||||||
|
chmod +x "$pnpm_binary"
|
||||||
|
|
||||||
|
echo "$pnpm_checksum" >"$pnpm_installed_checksum_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get golang binaries in place
|
||||||
|
cd "$DIR/master"
|
||||||
|
go build
|
||||||
|
|
||||||
|
cd "$DIR/logger"
|
||||||
|
go build
|
||||||
|
|
||||||
|
# Update framework code
|
||||||
|
cd "$DIR/express"
|
||||||
|
../cmd pnpm install
|
||||||
Reference in New Issue
Block a user