From ed636b05a42a7bd68d5b8a3c852f82a6e0776431 Mon Sep 17 00:00:00 2001 From: Alex Groleau Date: Tue, 24 Feb 2026 18:00:20 -0500 Subject: [PATCH] flow update --- flow | 61 +++++++++++++++++++++++++++++------------------------------ flows | 2 +- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/flow b/flow index 6623ebd..72e0a33 100755 --- a/flow +++ b/flow @@ -15,25 +15,28 @@ CARGO_DEPENDENCIES=(cargo-pgrx==0.16.1) GITEA_ORGANIZATION="cellular" GITEA_REPOSITORY="jspg" -pgrx-prepare() { +pgrx-up() { info "Initializing pgrx..." # Explicitly point to the postgresql@${POSTGRES_VERSION} pg_config, don't rely on 'which' local POSTGRES_CONFIG_PATH="/opt/homebrew/opt/postgresql@${POSTGRES_VERSION}/bin/pg_config" if [ ! -x "$POSTGRES_CONFIG_PATH" ]; then - error "pg_config not found or not executable at $POSTGRES_CONFIG_PATH." warning "Ensure postgresql@${POSTGRES_VERSION} is installed correctly via Homebrew." - return 2 + abort "pg_config not found or not executable at $POSTGRES_CONFIG_PATH." 2 fi if cargo pgrx init --pg"$POSTGRES_VERSION"="$POSTGRES_CONFIG_PATH"; then - success "pgrx initialized successfully." - else - error "Failed to initialize pgrx. Check PostgreSQL development packages are installed and $POSTGRES_CONFIG_PATH is valid." - return 2 + success "pgrx initialized successfully." && return 0 fi + + abort "Failed to initialize pgrx. Check PostgreSQL development packages are installed and $POSTGRES_CONFIG_PATH is valid." 2 } +pgrx-down() { + info "Taking pgrx down..." +} + + build() { local version version=$(get-version) || return $? @@ -51,11 +54,10 @@ build() { info "Creating tarball: ${tarball_path}" # Set COPYFILE_DISABLE=1 to prevent macOS tar from including ._ metadata files if COPYFILE_DISABLE=1 tar --exclude='.git*' --exclude='./target' --exclude='./package' --exclude='./flows' --exclude='./flow' -czf "${tarball_path}" .; then - success "Successfully created source tarball: ${tarball_path}" - else - error "Failed to create source tarball." - return 2 + success "Successfully created source tarball: ${tarball_path}" && return 0 fi + + abort "Failed to create source tarball." 2 } install() { @@ -66,8 +68,7 @@ install() { # Run the pgrx install command if ! cargo pgrx install; then - error "cargo pgrx install command failed." - return 2 + abort "cargo pgrx install command failed." 2 fi success "PGRX extension v$version successfully built and installed." @@ -76,26 +77,23 @@ install() { pg_sharedir=$("$POSTGRES_CONFIG_PATH" --sharedir) local pg_config_status=$? if [ $pg_config_status -ne 0 ] || [ -z "$pg_sharedir" ]; then - error "Failed to determine PostgreSQL shared directory using pg_config." - return 2 + abort "Failed to determine PostgreSQL shared directory using pg_config." 2 fi local installed_control_path="${pg_sharedir}/extension/jspg.control" # Modify the control file if [ ! -f "$installed_control_path" ]; then - error "Installed control file not found: '$installed_control_path'" - return 2 + abort "Installed control file not found: '$installed_control_path'" 2 fi info "Modifying control file for non-superuser access: ${installed_control_path}" # Use sed -i '' for macOS compatibility if sed -i '' '/^superuser = false/d' "$installed_control_path" && \ echo 'trusted = true' >> "$installed_control_path"; then - success "Control file modified successfully." - else - error "Failed to modify control file: ${installed_control_path}" - return 2 + success "Control file modified successfully." && return 0 fi + + abort "Failed to modify control file: ${installed_control_path}" 2 } test() { @@ -109,26 +107,27 @@ clean() { } jspg-usage() { - printf "prepare\tCheck OS, Cargo, and PGRX dependencies.\n" - printf "install\tBuild and install the extension locally (after prepare).\n" - printf "reinstall\tClean, build, and install the extension locally (after prepare).\n" - printf "test-jspg\t\tRun pgrx integration tests.\n" - printf "test-validator\t\tRun validator integration tests.\n" - printf "clean\t\tRemove pgrx build artifacts.\n" + echo "up|Check OS, Cargo, and PGRX dependencies." + echo "install|Build and install the extension locally (after up)." + echo "reinstall|Clean, build, and install the extension locally (after up)." + echo "test-jspg|Run pgrx integration tests." + echo "test-validator|Run validator integration tests." + echo "clean|Remove pgrx build artifacts." } jspg-flow() { case "$1" in - prepare) prepare && cargo-prepare && pgrx-prepare; return $?;; + up) up && rust-up && pgrx-up; return $?;; + down) pgrx-down && rust-down && down; return $?;; build) build; return $?;; install) install; return $?;; reinstall) clean && install; return $?;; - test) test "${@:2}"; return $?;; + test) test "${@:2}"; return $?;; clean) clean; return $?;; - *) return 1 ;; + *) return 127 ;; esac } -register-flow "jspg-usage" "jspg-flow" +register-flow "jspg" dispatch "$@" \ No newline at end of file diff --git a/flows b/flows index 404da62..185aff4 160000 --- a/flows +++ b/flows @@ -1 +1 @@ -Subproject commit 404da626c7f53b9e03739df54cec13dad36126dc +Subproject commit 185aff45046547e0b417b9924ed28ba206e70359