GitRoot

Craft your forge, Build your project, Grow your community freely
 1#!/usr/bin/env bash
 2
 3# SPDX-FileCopyrightText: 2026 Romain Maneschi <romain@gitroot.dev>
 4#
 5# SPDX-License-Identifier: EUPL-1.2
 6
 7_init() {
 8    local SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 9    source "${SCRIPT_DIR}/waitforlog.sh"
10    source "${SCRIPT_DIR}/report.sh"
11}
12
13_init
14unset -f _init
15
16SERVER_PORT="4545"
17SERVER_DATA_DIR="/tmp/gitrootData"
18
19# restart
20#   If launched stop gitroot. Then start it from source and wait.
21function restart() {
22    local SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
23    APP=$(lsof -i tcp:${SERVER_PORT} | awk 'NR!=1 {print $2}') 
24    if [ -z "$APP" ]; then
25        report "🟢 Gitroot not launched"
26    else 
27        kill ${APP}
28        report "🟢 Gitroot killed"
29    fi
30    local lastKill="⌛ Will restart ($(date +%s))"
31    report "${lastKill}"
32    cd ${SCRIPT_DIR}/../../server
33    GIT_TRACE_PACKET=false go run -race . -data="${SERVER_DATA_DIR}" &>> /tmp/mylog.txt &
34    wait_for_logs "starting SSH server on" /tmp/mylog.txt "${lastKill}"
35}