Compare commits

...

133 Commits

Author SHA1 Message Date
M_Kececi
1ced1b1649 Merge remote-tracking branch 'origin/master' 2026-02-19 12:28:13 +03:00
M_Kececi
76e7ca2e4a Merge remote-tracking branch 'origin/master' 2026-02-19 09:32:26 +03:00
M_Kececi
ed81fdf84f Merge remote-tracking branch 'origin/master' 2026-02-19 09:03:21 +03:00
M_Kececi
026c40c0b3 Merge remote-tracking branch 'origin/master' 2026-02-19 02:00:49 +03:00
M_Kececi
0136e6638b Merge remote-tracking branch 'origin/master' 2026-02-19 01:34:56 +03:00
M_Kececi
7184a40dd3 Merge remote-tracking branch 'origin/master' 2026-02-18 17:35:15 +03:00
M_Kececi
de58ef1043 Merge remote-tracking branch 'origin/master' 2026-02-18 16:58:46 +03:00
M_Kececi
744e20591d Merge remote-tracking branch 'origin/master' 2026-02-18 16:40:55 +03:00
M_Kececi
1263531edd Merge remote-tracking branch 'origin/master' 2026-02-18 16:40:37 +03:00
M_Kececi
d2bd0684c1 Merge remote-tracking branch 'origin/master' 2026-02-18 15:44:51 +03:00
M_Kececi
13f8801379 Merge remote-tracking branch 'origin/master' 2026-02-18 15:17:46 +03:00
M_Kececi
c3a1627152 Merge remote-tracking branch 'origin/master' 2026-02-18 15:09:47 +03:00
M_Kececi
727069910d Merge remote-tracking branch 'origin/master' 2026-02-18 14:34:21 +03:00
M_Kececi
1f95099677 Merge remote-tracking branch 'origin/master' 2026-02-18 14:24:50 +03:00
M_Kececi
dc36699a2b Merge remote-tracking branch 'origin/master' 2026-02-18 14:11:37 +03:00
M_Kececi
0e63370810 Merge remote-tracking branch 'origin/master' 2026-02-18 14:07:26 +03:00
M_Kececi
ea7d426436 Merge remote-tracking branch 'origin/master' 2026-02-18 14:02:58 +03:00
M_Kececi
369db87091 Merge remote-tracking branch 'origin/master' 2026-02-18 14:02:54 +03:00
M_Kececi
400220995b Merge remote-tracking branch 'origin/master' 2026-02-18 13:51:34 +03:00
M_Kececi
eff80a3211 Merge remote-tracking branch 'origin/master' 2026-02-17 15:02:51 +03:00
M_Kececi
00fc69601e Merge remote-tracking branch 'origin/master' 2026-02-17 14:14:48 +03:00
M_Kececi
3d508868c8 Merge remote-tracking branch 'origin/master' 2026-02-17 14:11:28 +03:00
M_Kececi
46c617b8f5 Merge remote-tracking branch 'origin/master' 2026-02-17 13:30:04 +03:00
M_Kececi
3bbb8539c7 Merge remote-tracking branch 'origin/master' 2026-02-17 13:21:00 +03:00
M_Kececi
5ca00065e6 fix(deploy): stabilize sass-embedded and runtime env files 2026-02-17 13:18:21 +03:00
M_Kececi
93446e6a69 Merge remote-tracking branch 'origin/master' 2026-02-17 13:13:25 +03:00
M_Kececi
4b455814b4 Merge remote-tracking branch 'origin/master' 2026-02-17 13:07:18 +03:00
M_Kececi
291603163b Merge remote-tracking branch 'origin/master' 2026-02-17 13:01:00 +03:00
M_Kececi
e4cdae58d4 fix(deploy): remove embedded install from script; pin sass-embedded linux runtime 2026-02-17 12:56:14 +03:00
M_Kececi
6483678267 Merge remote-tracking branch 'origin/master' 2026-02-17 12:49:56 +03:00
M_Kececi
fde9b4469f Merge remote-tracking branch 'origin/master' 2026-02-17 12:41:37 +03:00
M_Kececi
90ed98d59f Merge remote-tracking branch 'origin/master' 2026-02-17 12:35:46 +03:00
M_Kececi
88c20d844f Merge remote-tracking branch 'origin/master' 2026-02-17 12:32:04 +03:00
M_Kececi
cf8352dbaf Merge remote-tracking branch 'origin/master' 2026-02-17 12:27:55 +03:00
M_Kececi
5429305a6e Merge remote-tracking branch 'origin/master' 2026-02-17 12:26:41 +03:00
M_Kececi
88c189a48d Merge remote-tracking branch 'origin/master' 2026-02-17 12:23:24 +03:00
M_Kececi
8eaee91537 Merge remote-tracking branch 'origin/master' 2026-02-17 11:53:26 +03:00
M_Kececi
199390bc66 Merge remote-tracking branch 'origin/master' 2026-02-17 11:53:12 +03:00
M_Kececi
1c1df2521e fix: detach deploy to prevent EPIPE 2026-02-17 11:48:15 +03:00
M_Kececi
68790c9f4e fix: stable webhook deploy (EPIPE safe) 2026-02-17 11:44:32 +03:00
M_Kececi
3eac743225 Merge remote-tracking branch 'origin/master' 2026-02-17 11:41:41 +03:00
M_Kececi
d82cea0b54 Add deploy and webhook config 2026-02-17 11:29:24 +03:00
M_Kececi
8c0f18eee3 ui build 2026-02-17 11:24:55 +03:00
M_Kececi
3faaf57768 Merge remote-tracking branch 'origin/master' 2026-02-17 11:11:52 +03:00
M_Kececi
10adf327f4 Merge remote-tracking branch 'origin/master' 2026-02-17 11:11:34 +03:00
M_Kececi
47b3e9172f Merge remote-tracking branch 'origin/master' 2026-02-17 11:11:20 +03:00
Your Name
9cf575d71d Merge remote-tracking branch 'origin/master' 2026-02-17 11:06:55 +03:00
MEHMETKECECI
585e98afb8 Merge remote-tracking branch 'origin/master' 2026-02-17 10:15:17 +03:00
MEHMETKECECI
76ba649366 Ignore deploy public folder 2026-02-17 09:46:25 +03:00
MEHMETKECECI
801ed23cd9 Merge remote-tracking branch 'origin/master' 2026-02-17 09:07:49 +03:00
MEHMETKECECI
2c6515b580 add gitignore for ui build 2026-02-17 08:51:59 +03:00
MEHMETKECECI
6f842043b2 Merge remote-tracking branch 'origin/master' 2026-02-16 17:29:40 +03:00
MEHMETKECECI
7edf87055e Merge remote-tracking branch 'origin/master' 2026-02-16 17:22:14 +03:00
MEHMETKECECI
484512ff25 Merge remote-tracking branch 'origin/master' 2026-02-16 17:21:20 +03:00
MEHMETKECECI
0a14f87a3e Merge remote-tracking branch 'origin/master' 2026-02-16 16:51:45 +03:00
MEHMETKECECI
daedff2880 Merge remote-tracking branch 'origin/master' 2026-02-16 16:45:04 +03:00
MEHMETKECECI
54182e97c5 Merge remote-tracking branch 'origin/master' 2026-02-16 16:07:49 +03:00
MEHMETKECECI
14d71ba925 Merge remote-tracking branch 'origin/master' 2026-02-16 16:04:13 +03:00
MEHMETKECECI
5124ad78af Merge remote-tracking branch 'origin/master' 2026-02-16 15:53:00 +03:00
MEHMETKECECI
f8b07a6aea Merge remote-tracking branch 'origin/master' 2026-02-16 15:14:50 +03:00
MEHMETKECECI
f5f37089ac Merge remote-tracking branch 'origin/master' 2026-02-16 15:14:42 +03:00
MEHMETKECECI
4b01a0835d Merge remote-tracking branch 'origin/master' 2026-02-16 15:10:37 +03:00
MEHMETKECECI
82e51bbfcd Merge remote-tracking branch 'origin/master' 2026-02-16 15:08:37 +03:00
MEHMETKECECI
0a5ffe1407 Merge remote-tracking branch 'origin/master' 2026-02-16 15:07:21 +03:00
MEHMETKECECI
5a6350250a Merge remote-tracking branch 'origin/master' 2026-02-16 14:55:41 +03:00
MEHMETKECECI
9ce85ff6b8 Merge remote-tracking branch 'origin/master' 2026-02-16 14:18:49 +03:00
MEHMETKECECI
f6e1e7d00e fix: sanitize pdf font path 2026-02-16 14:07:38 +03:00
MEHMETKECECI
a514f4dcfa fix: enforce absolute pdf font path 2026-02-16 12:25:54 +03:00
MEHMETKECECI
2f9c917a08 fix: normalize pdf font path 2026-02-16 12:14:39 +03:00
MEHMETKECECI
cb415a6f63 Merge remote-tracking branch 'origin/master' 2026-02-16 12:08:55 +03:00
MEHMETKECECI
a1ab7508c6 Merge remote-tracking branch 'origin/master' 2026-02-16 12:03:59 +03:00
MEHMETKECECI
ec6d547641 Merge remote-tracking branch 'origin/master' 2026-02-16 11:59:14 +03:00
MEHMETKECECI
96b973b71f chore: remove runtime files from repo 2026-02-16 11:40:25 +03:00
MEHMETKECECI
5c5916f58c rebuild with new font loader 2026-02-16 11:37:59 +03:00
MEHMETKECECI
f767726617 fix: linux amd64 static build 2026-02-16 11:29:29 +03:00
MEHMETKECECI
fcd31c4d7f restore gitignore 2026-02-16 11:25:16 +03:00
MEHMETKECECI
756bbe137d build linux binary 2026-02-16 11:18:39 +03:00
MEHMETKECECI
cd8c8a6e9e Merge remote-tracking branch 'origin/master' 2026-02-16 11:10:04 +03:00
MEHMETKECECI
70f097806b Merge remote-tracking branch 'origin/master' 2026-02-16 09:46:08 +03:00
MEHMETKECECI
21db754045 Merge remote-tracking branch 'origin/master' 2026-02-16 09:35:11 +03:00
MEHMETKECECI
56e40de192 Merge remote-tracking branch 'origin/master' 2026-02-15 23:23:06 +03:00
MEHMETKECECI
f338ef1986 Merge remote-tracking branch 'origin/master' 2026-02-15 21:14:10 +03:00
MEHMETKECECI
e7a776aede Merge remote-tracking branch 'origin/master' 2026-02-15 21:13:58 +03:00
MEHMETKECECI
897b153cfc Merge remote-tracking branch 'origin/master' 2026-02-15 21:01:57 +03:00
MEHMETKECECI
babf77ae17 Merge remote-tracking branch 'origin/master' 2026-02-15 20:54:47 +03:00
MEHMETKECECI
43d018f492 Merge remote-tracking branch 'origin/master' 2026-02-15 05:37:41 +03:00
MEHMETKECECI
434908495e Merge remote-tracking branch 'origin/master' 2026-02-15 05:36:19 +03:00
MEHMETKECECI
a236686f7d Merge remote-tracking branch 'origin/master' 2026-02-15 05:31:32 +03:00
MEHMETKECECI
400fa38a49 Merge remote-tracking branch 'origin/master' 2026-02-14 21:07:17 +03:00
MEHMETKECECI
4be05573eb Merge remote-tracking branch 'origin/master' 2026-02-14 20:21:33 +03:00
MEHMETKECECI
9e18ac1398 Merge remote-tracking branch 'origin/master' 2026-02-14 20:08:56 +03:00
MEHMETKECECI
7d94573bdd Merge remote-tracking branch 'origin/master' 2026-02-14 19:59:03 +03:00
MEHMETKECECI
a2a756870d Merge remote-tracking branch 'origin/master' 2026-02-14 19:57:41 +03:00
MEHMETKECECI
d0f20674ea Merge remote-tracking branch 'origin/master' 2026-02-14 19:48:53 +03:00
MEHMETKECECI
237f73a923 Merge remote-tracking branch 'origin/master' 2026-02-14 19:44:53 +03:00
MEHMETKECECI
ce110ed86f Merge remote-tracking branch 'origin/master' 2026-02-14 16:55:10 +03:00
MEHMETKECECI
6d22f5874a Merge remote-tracking branch 'origin/master' 2026-02-14 16:44:36 +03:00
MEHMETKECECI
6105be3eb3 Merge remote-tracking branch 'origin/master' 2026-02-14 16:44:28 +03:00
MEHMETKECECI
fd5b8a2954 Merge remote-tracking branch 'origin/master' 2026-02-14 16:16:47 +03:00
MEHMETKECECI
14b3d86782 Merge remote-tracking branch 'origin/master' 2026-02-14 15:57:28 +03:00
MEHMETKECECI
f079ee80da Merge remote-tracking branch 'origin/master' 2026-02-14 15:49:40 +03:00
MEHMETKECECI
3bc3543010 Merge remote-tracking branch 'origin/master' 2026-02-14 15:28:15 +03:00
MEHMETKECECI
4355a09a15 Merge remote-tracking branch 'origin/master' 2026-02-14 15:02:54 +03:00
MEHMETKECECI
5eca170e97 Merge remote-tracking branch 'origin/master' 2026-02-14 14:59:13 +03:00
MEHMETKECECI
676724b5d5 Merge remote-tracking branch 'origin/master' 2026-02-14 14:58:13 +03:00
MEHMETKECECI
1874e4c0d3 Merge remote-tracking branch 'origin/master' 2026-02-14 14:56:17 +03:00
MEHMETKECECI
a3456d388d Merge remote-tracking branch 'origin/master' 2026-02-14 14:56:06 +03:00
MEHMETKECECI
e38421db45 Merge remote-tracking branch 'origin/master' 2026-02-14 14:53:37 +03:00
MEHMETKECECI
c6007c05cb Merge remote-tracking branch 'origin/master' 2026-02-14 14:43:41 +03:00
MEHMETKECECI
406d9e8ce5 Merge remote-tracking branch 'origin/master' 2026-02-14 11:44:15 +03:00
MEHMETKECECI
1d15b619f9 Merge remote-tracking branch 'origin/master' 2026-02-14 11:11:13 +03:00
MEHMETKECECI
7b0850eb4e Merge remote-tracking branch 'origin/master' 2026-02-14 10:40:23 +03:00
MEHMETKECECI
76fa2040b1 Merge remote-tracking branch 'origin/master' 2026-02-14 10:36:50 +03:00
MEHMETKECECI
563bc0a0b6 Merge remote-tracking branch 'origin/master' 2026-02-14 10:23:57 +03:00
MEHMETKECECI
78f183c9ee Merge remote-tracking branch 'origin/master' 2026-02-13 23:23:55 +03:00
MEHMETKECECI
f7211d5cf7 Merge remote-tracking branch 'origin/master' 2026-02-13 21:05:30 +03:00
MEHMETKECECI
2950f49501 Merge remote-tracking branch 'origin/master' 2026-02-13 21:05:19 +03:00
MEHMETKECECI
66ac5c6a06 Merge remote-tracking branch 'origin/master' 2026-02-13 21:04:22 +03:00
MEHMETKECECI
a422569c87 Merge remote-tracking branch 'origin/master' 2026-02-13 21:00:39 +03:00
MEHMETKECECI
16eff8d0f7 Merge remote-tracking branch 'origin/master' 2026-02-13 20:59:29 +03:00
MEHMETKECECI
d7838fa3ea Merge remote-tracking branch 'origin/master' 2026-02-13 20:59:09 +03:00
MEHMETKECECI
7edcd446d0 Merge remote-tracking branch 'origin/master' 2026-02-13 20:58:38 +03:00
MEHMETKECECI
572bab4134 Merge remote-tracking branch 'origin/master' 2026-02-13 20:57:21 +03:00
MEHMETKECECI
e8669f1999 Merge remote-tracking branch 'origin/master' 2026-02-13 20:55:19 +03:00
MEHMETKECECI
50325504dd Merge remote-tracking branch 'origin/master'
# Conflicts:
#	ui/src/pages/OrderList.vue
2026-02-13 20:55:11 +03:00
MEHMETKECECI
8492072be1 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	ui/src/pages/OrderList.vue
2026-02-13 20:52:03 +03:00
5a249ab510 publish 2026-02-13 15:56:08 +03:00
MEHMETKECECI
03d6c61587 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	ui/src/pages/OrderList.vue
2026-02-13 15:17:23 +03:00
MEHMETKECECI
c888ef9b3c Merge remote-tracking branch 'origin/master'
# Conflicts:
#	ui/src/pages/OrderList.vue
2026-02-13 07:48:58 +03:00
MEHMETKECECI
7f56bb40c5 Merge remote-tracking branch 'origin/master' 2026-02-13 07:48:17 +03:00
MEHMETKECECI
b2ce30fe79 Merge remote-tracking branch 'origin/master' 2026-02-13 07:28:31 +03:00
MEHMETKECECI
d571fe2fd5 Merge remote-tracking branch 'origin/master' 2026-02-12 22:55:03 +03:00
MEHMETKECECI
1560e839c3 Merge remote-tracking branch 'origin/master' 2026-02-12 22:54:57 +03:00
2100 changed files with 9826 additions and 1718 deletions

12
.gitignore vendored Normal file
View File

@@ -0,0 +1,12 @@
# Node
node_modules/
# Build
dist/
# Deploy output
svc/public/
svc/public/**
ui/dist/
ui/dist/**

212
deploy/deploy.sh Normal file
View File

@@ -0,0 +1,212 @@
#!/bin/bash
set -euo pipefail
umask 022
export NODE_OPTIONS="--max_old_space_size=4096"
export CI="true"
export npm_config_progress="false"
export npm_config_loglevel="warn"
export FORCE_COLOR="0"
LOG_FILE="/var/log/bssapp_deploy.log"
APP_DIR="/opt/bssapp"
LOCK_FILE="/tmp/bssapp_deploy.lock"
RUNTIME_BACKUP_DIR=""
RUNTIME_PRESERVE_FILES=(
".env"
"mail.env"
"svc/.env"
"svc/mail.env"
"svc/fonts"
"svc/public"
)
log_step() {
echo "== $1 =="
}
backup_runtime_files() {
RUNTIME_BACKUP_DIR="$(mktemp -d /tmp/bssapp-runtime.XXXXXX)"
for rel in "${RUNTIME_PRESERVE_FILES[@]}"; do
src="$APP_DIR/$rel"
dst="$RUNTIME_BACKUP_DIR/$rel"
if [[ -e "$src" ]]; then
mkdir -p "$(dirname "$dst")"
cp -a "$src" "$dst"
fi
done
}
restore_runtime_files() {
[[ -n "$RUNTIME_BACKUP_DIR" && -d "$RUNTIME_BACKUP_DIR" ]] || return 0
find "$RUNTIME_BACKUP_DIR" -mindepth 1 -print -quit | grep -q . || return 0
cp -a "$RUNTIME_BACKUP_DIR/." "$APP_DIR/"
}
cleanup_runtime_backup() {
if [[ -n "$RUNTIME_BACKUP_DIR" && -d "$RUNTIME_BACKUP_DIR" ]]; then
rm -rf "$RUNTIME_BACKUP_DIR"
fi
}
ensure_runtime_env_files() {
[[ -f "$APP_DIR/.env" ]] || touch "$APP_DIR/.env"
[[ -f "$APP_DIR/mail.env" ]] || touch "$APP_DIR/mail.env"
[[ -f "$APP_DIR/svc/.env" ]] || touch "$APP_DIR/svc/.env"
[[ -f "$APP_DIR/svc/mail.env" ]] || touch "$APP_DIR/svc/mail.env"
}
ensure_pdf_fonts() {
local font_dir="$APP_DIR/svc/fonts"
local sys_font_dir="/usr/share/fonts/truetype/dejavu"
mkdir -p "$font_dir"
if [[ ! -f "$font_dir/DejaVuSans.ttf" && -f "$sys_font_dir/DejaVuSans.ttf" ]]; then
cp -a "$sys_font_dir/DejaVuSans.ttf" "$font_dir/DejaVuSans.ttf"
fi
if [[ ! -f "$font_dir/DejaVuSans-Bold.ttf" && -f "$sys_font_dir/DejaVuSans-Bold.ttf" ]]; then
cp -a "$sys_font_dir/DejaVuSans-Bold.ttf" "$font_dir/DejaVuSans-Bold.ttf"
fi
if [[ ! -f "$font_dir/DejaVuSans.ttf" || ! -f "$font_dir/DejaVuSans-Bold.ttf" ]]; then
echo "ERROR: Required PDF fonts missing in $font_dir"
return 1
fi
}
ensure_ui_permissions() {
local ui_root="$APP_DIR/ui/dist/spa"
if [[ ! -d "$ui_root" ]]; then
echo "ERROR: UI build output not found at $ui_root"
return 1
fi
chmod 755 /opt "$APP_DIR" "$APP_DIR/ui" "$APP_DIR/ui/dist" "$ui_root"
find "$ui_root" -type d -exec chmod 755 {} \;
find "$ui_root" -type f -exec chmod 644 {} \;
}
ensure_ui_readable_by_nginx() {
local ui_index="$APP_DIR/ui/dist/spa/index.html"
if [[ ! -f "$ui_index" ]]; then
echo "ERROR: UI index not found at $ui_index"
return 1
fi
if id -u www-data >/dev/null 2>&1; then
if ! su -s /bin/sh -c "test -r '$ui_index'" www-data; then
echo "ERROR: www-data cannot read $ui_index"
namei -l "$ui_index" || true
return 1
fi
fi
}
build_api_binary() {
if ! command -v go >/dev/null 2>&1; then
echo "ERROR: go command not found"
return 1
fi
export GOPATH="${GOPATH:-/var/cache/bssapp-go}"
export GOMODCACHE="${GOMODCACHE:-$GOPATH/pkg/mod}"
export GOCACHE="${GOCACHE:-/var/cache/bssapp-go-build}"
mkdir -p "$GOPATH" "$GOMODCACHE" "$GOCACHE"
cd "$APP_DIR/svc"
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o "$APP_DIR/svc/bssapp" ./main.go
chmod +x "$APP_DIR/svc/bssapp"
}
restart_services() {
systemctl daemon-reload || true
systemctl restart bssapp
if ! systemctl is-active --quiet bssapp; then
echo "ERROR: bssapp service failed to start"
return 1
fi
if systemctl cat nginx >/dev/null 2>&1; then
systemctl restart nginx
if ! systemctl is-active --quiet nginx; then
echo "ERROR: nginx service failed to start"
return 1
fi
else
echo "WARN: nginx service not found; frontend may be unreachable."
fi
}
run_deploy() {
trap cleanup_runtime_backup EXIT
exec 9>"$LOCK_FILE"
if ! flock -n 9; then
echo "[$(date '+%F %T')] Deploy already running. Skipping new request."
return 0
fi
echo "=============================="
echo "[DEPLOY START] $(date '+%F %T')"
echo "=============================="
cd "$APP_DIR"
log_step "GIT SYNC"
backup_runtime_files
git fetch origin
git reset --hard origin/master
git clean -fdx \
-e .env \
-e mail.env \
-e svc/.env \
-e svc/mail.env \
-e svc/fonts \
-e svc/public \
-e svc/bssapp
restore_runtime_files
echo "DEPLOY COMMIT: $(git rev-parse --short HEAD)"
log_step "BUILD UI"
cd "$APP_DIR/ui"
npm ci --no-audit --no-fund --include=optional
npm i -D --no-audit --no-fund sass-embedded@1.93.2
npm run build
log_step "ENSURE UI PERMISSIONS"
ensure_ui_permissions
ensure_ui_readable_by_nginx
log_step "BUILD API"
build_api_binary
log_step "ENSURE ENV FILES"
ensure_runtime_env_files
log_step "ENSURE PDF FONTS"
ensure_pdf_fonts
log_step "RESTART SERVICES"
restart_services
echo "[DEPLOY FINISHED] $(date '+%F %T')"
}
if [[ "${1:-}" == "--run" ]]; then
mkdir -p "$(dirname "$LOG_FILE")"
if command -v logger >/dev/null 2>&1; then
run_deploy 2>&1 | tee -a "$LOG_FILE" >(logger -t bssapp-deploy -p user.info)
exit ${PIPESTATUS[0]}
else
run_deploy >>"$LOG_FILE" 2>&1
exit $?
fi
fi
nohup /bin/bash "$0" --run </dev/null >/dev/null 2>&1 &
exit 0

57
deploy/hooks.json Normal file
View File

@@ -0,0 +1,57 @@
[
{
"id": "bssapp-deploy",
"execute-command": "/bin/bash",
"command-working-directory": "/opt/bssapp",
"pass-arguments-to-command": [
{
"source": "string",
"name": "/opt/bssapp/deploy/deploy.sh"
}
],
"trigger-rule": {
"or": [
{
"match": {
"type": "value",
"value": "Bearer bssapp-secret-2026",
"parameter": {
"source": "header",
"name": "Authorization"
}
}
},
{
"match": {
"type": "value",
"value": "bssapp-secret-2026",
"parameter": {
"source": "header",
"name": "Authorization"
}
}
},
{
"match": {
"type": "value",
"value": "X-BSSAPP-SECRET: bssapp-secret-2026",
"parameter": {
"source": "header",
"name": "Authorization"
}
}
},
{
"match": {
"type": "value",
"value": "bssapp-secret-2026",
"parameter": {
"source": "header",
"name": "X-BSSAPP-SECRET"
}
}
}
]
}
}
]

View File

@@ -2,4 +2,10 @@
rsync -azP /opt/baggib2b/ root@46.224.33.150:/opt/b2b --delete
cd /tmp && sudo -u postgres pg_dump baggib2b -Fc > /tmp/baggib2b.backup
scp /tmp/baggib2b.backup root@46.224.33.150:/tmp/
scp /tmp/baggib2b.backup root@46.224.33.150:/tmp/
# öbür makinada
export PGPASSWORD=tayitkan
dropdb baggib2b -U postgres -h 127.0.0.1
createdb -h 127.0.0.1 -U postgres baggib2b --encoding=UTF8 --locale=tr_TR.utf8 -T template0
pg_restore -h 127.0.0.1 -U postgres -d baggib2b /tmp/baggib2b.backup

49
scripts/publish.sh Normal file → Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
APP=bssapp
PRJ_ROOT=../
SVC_ROOT=${PRJ_ROOT}/svc
UI_ROOT=${PRJ_ROOT}/ui
DEST_IP=46.224.33.150
echo "Building ${APP} executable"
cd ${SVC_ROOT}
if [[ $OSTYPE == 'darwin'* ]]; then
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o ./$APP ./main.go
else
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o ./$APP ./main.go
fi
echo "Building SPA"
cd ${UI_ROOT}
quasar build
echo "Copying executables"
scp ${SVC_ROOT}/${APP} root@${DEST_IP}:/opt/${APP}/${APP}.new
scp ${SVC_ROOT}/.env root@${DEST_IP}:/opt/${APP}/.env
scp ${SVC_ROOT}/mail.env root@${DEST_IP}:/opt/${APP}/mail.env
# scp ${SVC_ROOT}/upgrader/upgrader root@${DEST_IP}:/opt/${APP}/upgrader
echo "Transferring additional files"
#rsync -azP ${PRJ_ROOT}/templates/ root@${DEST_IP}:/opt/${APP}/templates --delete
#rsync -azP ${PRJ_ROOT}/db/sqls root@${DEST_IP}:/opt/${APP} --delete
#rsync -azP ${SVC_ROOT}/fonts/ root@${DEST_IP}:/opt/${APP}/fonts --delete
#rsync -azP ${PRJ_ROOT}/db/migration/base root@${DEST_IP}:/opt/${APP}/migrate --delete
rsync -azP ${UI_ROOT}/dist/spa/ root@${DEST_IP}:/opt/${APP}/ui --delete
#echo "Migrating database"
#ssh root@${DEST_IP} "/opt/migrater -folder /opt/${APP}/migrate/base -db ${APP} -host 10.0.0.2 -tracker base -migrate-table symigrate -password tesnos.+ed"
echo "Updating system"
ssh root@${DEST_IP} "sudo systemctl stop ${APP}.service"
ssh root@${DEST_IP} "sudo rm /opt/${APP}/${APP}"
ssh root@${DEST_IP} "sudo mv /opt/${APP}/${APP}.new /opt/${APP}/${APP}"
ssh root@${DEST_IP} "chown -R ${APP}:${APP} /opt/${APP}"
ssh root@${DEST_IP} "sudo systemctl start ${APP}.service"
# remove compiled binary
cd ${SVC_ROOT}
rm -rf ./$APP

93
scripts/svc_install.sh Normal file
View File

@@ -0,0 +1,93 @@
#!/bin/bash
APP=bssapp
PORT=43201
DOMAIN=ss.baggi.com.tr
apt update && apt upgrade
apt -y install mc rsync curl nginx
apt install certbot python3-certbot-nginx
dpkg-reconfigure tzdata
useradd --system --shell=/usr/sbin/nologin ${APP}
mkdir -p /opt/${APP}/sqls
mkdir -p /opt/${APP}/migrate
mkdir -p /opt/${APP}/ui
mkdir -p /opt/${APP}/files
echo "Creating application service"
read -d '' sservice << EOF
[Unit]
Description=${APP}
After=syslog.target
After=network.target
#Requires=postgresql.service
#Requires=memcached.service
#Requires=redis.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
LimitMEMLOCK=infinity
LimitNOFILE=1048576
RestartSec=2s
Type=simple
User=${APP}
Group=${APP}
WorkingDirectory=/opt/${APP}/
ExecStart=/opt/${APP}/nerp
Restart=always
Environment=HTTPPORT=${PORT} SQLSDIR=./sqls DBHOST=10.0.0.2 DBNAME=${APP} DBPASS=tesnos.+ed
# enable to bind to a port below 1024 uncomment
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
# Prevent writes to /usr, /boot, and /etc
ProtectSystem=full
# Prevent accessing /home, /root and /run/user
ProtectHome=true
# Execute pre and post scripts as root, otherwise it does it as User=
PermissionsStartOnly=true
[Install]
WantedBy=multi-user.target
EOF
echo "$sservice" > /etc/systemd/system/${APP}.service
echo "Creating nginx conf"
read -d '' ngconf << EOF
server {
server_name ${DOMAIN}
listen 80;
client_max_body_size 100M;
location / {
proxy_pass http://localhost:${PORT};
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
EOF
echo "$ngconf" > /etc/nginx/sites-available/${DOMAIN}
ln -s /etc/nginx/sites-available/${DOMAIN} /etc/nginx/sites-enabled
systemctl restart nginx
certbot --nginx -d ${DOMAIN}
systemctl daemon-reload
systemctl enable ${APP}

View File

@@ -1,8 +0,0 @@
JWT_SECRET=bssapp_super_secret_key_1234567890
PASSWORD_RESET_SECRET=1dc7d6d52fd0459a8b1f288a6590428e760f54339f8e47beb20db36b6df6070b
APP_FRONTEND_URL=http://localhost:9000
API_URL=http://localhost:8080

33
svc/.env.local Normal file
View File

@@ -0,0 +1,33 @@
# ===============================
# SECURITY
# ===============================
JWT_SECRET=bssapp_super_secret_key_1234567890
PASSWORD_RESET_SECRET=1dc7d6d52fd0459a8b1f288a6590428e760f54339f8e47beb20db36b6df6070b
# ===============================
# URLS (PRODUCTION)
# ===============================
APP_FRONTEND_URL=http://46.224.33.150
API_URL=http://46.224.33.150
# Eğer Nginx ile /api varsa:
# API_URL=http://46.224.33.150/api
# ===============================
# UI
# ===============================
UI_DIR=/opt/bssapp/ui/dist
# ===============================
# DATABASES
# ===============================
POSTGRES_CONN=host=46.224.33.150 port=5432 user=postgres password=tayitkan dbname=baggib2b sslmode=disable
MSSQL_CONN=sqlserver://sa:Gil_0150@100.127.186.137:1433?database=BAGGI_V3&encrypt=disable
# ===============================
# PDF
# ===============================
PDF_FONT_DIR=/opt/bssapp/svc/fonts
API_HOST=0.0.0.0
API_PORT=8080

13
svc/.gitignore vendored Normal file
View File

@@ -0,0 +1,13 @@
# Binary
bssapp
# Env
.env
mail.env
# Runtime fonts
fonts/*.ttf
# Go
.gocache
*.exe

View File

@@ -0,0 +1 @@
v1 000b15966dec0a9df6fa04972a2ed72ca633ac4e3f613232f6cf52b4b5dc2031 4eaf98a2e0ccbce41d17188cddf2d0869f02a9375ab648aa54cae7e5a1d8a28a 11 1770918403196030400

View File

@@ -0,0 +1 @@
v1 00270f55e18da5bb8b3fc0ae4f787f54407886d85d98233b2854d412d193f28e 625b4a065566478bb3363f0d535c5931768a2c352851c053914cb74870cc20ed 318550 1770922385504622400

View File

@@ -0,0 +1 @@
v1 00543f18aa523d3f5c929bf4e51ae9abb6b69002cf28784a4c1cfb429ea6ea31 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918404029336100

View File

@@ -0,0 +1 @@
v1 005cf85e7cecf7476990251c1bf98d054087249e542b9d9cafabd40153ae486e 6b22e2dffdf026d0d2cee6a5c2eb4accafa110b39e11b4d53d4a64437f063563 11 1770918409084015100

View File

@@ -0,0 +1 @@
v1 0066bfda8db0dda697edd6c49ba87ed0819b4a9cc79cfece873a5ccede5a199d e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918399510887600

View File

@@ -0,0 +1 @@
v1 0067a32ba7b621df67cffb450755d7d1bf805cc4a37333f8ab58fae5d3120245 771216b9e9c572a9405ed99846d58f093e293dd77bfa38ad79f43f6dff3df446 3098 1770918366200251300

View File

@@ -0,0 +1 @@
v1 00885c11c0b8e1e4e45fa065c4a564fb85cef27cda7f102ef877309f51ecffd0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918395096493200

View File

@@ -0,0 +1,38 @@
./account.go
./activitylogs.go
./admin_piyasa.go
./admin_reset_password.go
./audit_helper.go
./auth_refresh.go
./customerlist.go
./first_password_change.go
./login.go
./order_list_excel.go
./order_pdf.go
./order_validate.go
./orderinventory.go
./orderlist.go
./orderpricelistb2b.go
./orders.go
./password_forgot.go
./password_reset.go
./password_reset_complete.go
./password_reset_validate.go
./permission_debug.go
./permission_matrix_v2.go
./permissions.go
./product.go
./productcolor.go
./productcolorsize.go
./productdetail.go
./productsecondcolor.go
./role_department_permissions.go
./statement_detail.go
./statement_header.go
./statement_header_pdf.go
./statements_pdf.go
./test_mail.go
./todaycurrencyv3.go
./user_detail.go
./user_list.go
./userpermissions.go

View File

@@ -0,0 +1 @@
v1 00c1ab6750bdedf420343e237b27bbf6a241c04e2a04677a870681cdb956793f e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918409508838600

View File

@@ -0,0 +1 @@
v1 00eb50b8deaee37e2ed09d38709b6bf183c91aa63980a89ecadb8e5a73459dc0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918404064322300

View File

@@ -0,0 +1 @@
v1 00f0b809d1fe3729931d9da912f9707f030076d062c6a6e8f9bf5cfaaa6e00b9 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918410269663100

View File

@@ -0,0 +1 @@
v1 014bcaa01dd2140f66e64bedc29ca05e19cd42465a561514d783fa964cb3c7e4 6ebabd526652f749932bca5b3aa381c0c468339f3d250d2c4be0c23085e1777f 3341314 1770918416787037400

View File

@@ -0,0 +1 @@
v1 01660bfd6b205f1bbd39ccc9d9ff7afb18b94c11b8b6bcfb3b82d43b47667583 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770924805789347500

View File

@@ -0,0 +1 @@
v1 0184485c9e43d6b11c86184253762f8d3e746264ebe12532dc64bad340ca8b2b 4ffd1d90a8fd5531491aad5a0c95cc6a665b6f22aaa2152c5cdd4ea369c52997 1252 1770924845975038900

View File

@@ -0,0 +1 @@
v1 018d74ad08a168c3adf8340173db848761132c9550bd46e9bb5d1ae7b3def6f2 67a557448c19164bc05070d132db609cbbaf38d5299f0c6526e34193646ac224 231 1770918395252520000

View File

@@ -0,0 +1 @@
v1 01f2f66ed96f26acb66e417092bca96906cc06478b4d66b6a04d9429cb032f9f c88cf8cca5fbfa3295347940e205403bdc78fd0e34ae8638cc461c575cc03b70 21038 1770918400801614500

View File

@@ -0,0 +1 @@
v1 02beec4af36031e3f0b9be272f307285b052a0231b403280d93cb6d452143489 ce372f9cb03fbbe0aa478b5a4c9a90f02fdc3d88f458819c96bc2f576264b0f5 61 1770918406376993700

View File

@@ -0,0 +1 @@
v1 0358980a278e933aa2f9080de2edc8a6bb6127d38b2f60f7903cdebf8ef0fe56 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918412953962100

View File

@@ -0,0 +1,2 @@
./ntlm.go
./provider.go

View File

@@ -0,0 +1 @@
v1 03858db129147d9a5573b21b474bd2dab2fa9b06542fcf235c1f854bf3ee5b51 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770922436157149500

View File

@@ -0,0 +1 @@
v1 03d2789ae52111aa9b15467fa91d0165af5b31196c49e11d7ceb4c0adbc79f3a 16337fdddc2b0c381760fa84b8639f62f3484268cba699529ca9e2b67306af17 8780 1770918395697121800

View File

@@ -0,0 +1 @@
v1 04389e89f9459a5aa2ed4989fe5183759e3440e2d7b1a00e2c2a6de26851db1d e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918401361122100

View File

@@ -0,0 +1 @@
v1 044c5e726767e00d459183f185eb0a3604ae31b72e6cb794ea97f701d58cfb3a 5a414362ad3ca5c3479dfa4a414995c0b432e9ef91740d9f6bd8db7ea3e3d0ec 36 1770918410856447300

View File

@@ -0,0 +1 @@
v1 04a907a299b9b544d4390fba0416f050d68ef5fabc9bcecab786cb5dc4c0f8c3 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918408695401900

View File

@@ -0,0 +1,7 @@
./deflate.go
./deflatefast.go
./dict_decoder.go
./huffman_bit_writer.go
./huffman_code.go
./inflate.go
./token.go

View File

@@ -0,0 +1 @@
v1 04c6a3da2705548330f4947aa772503caca6930308751846899a8582ca9d7c08 d6559f55df1b4d9a1235f63ca621a1170bddf17756e50a47587d53651ff9ee0b 68224 1770918396806633700

View File

@@ -0,0 +1 @@
v1 04d584430b31ba5b7e1886ef5c501a88d34e7d437a8ff54e941b5bd25a209be1 acd79684c5a1a516e98f5b483cf8d8ff7b75cbeb813507e41e0bf57b2761e4e4 37276 1770918408851671100

View File

@@ -0,0 +1 @@
v1 04ec6a457c5a0233ce11cf71f05e04fd23b263e480ca3cdd43055b6678d4c3d4 9649abf3c600e42e7e25126456a2864a15c04db8d0a7df166360c8a8c23aece1 2246 1770918369086074500

View File

@@ -0,0 +1,4 @@
./elliptic.go
./nistec.go
./nistec_p256.go
./params.go

View File

@@ -0,0 +1 @@
v1 057f33a076bad9ef395610cda9007cd4e5563e5a378fce32312f9d9881295655 c4b8c49ebec2842c99f9dcedb1bd2fa9c2498992a5b1e5c0bbf84f8f21ae4662 10 1770918402927011000

View File

@@ -0,0 +1 @@
v1 05ddbe69c67b7e1e69779d437fa5d86cc04eab0c924c45e1fff7819df29a8bfd 22afe4900445c5da284d3de752c19683af6850d19ae5c17ae28fc95ad2e2cea3 166967 1770918394598911200

View File

@@ -0,0 +1,5 @@
./doc.go
./errors.go
./format.go
./print.go
./scan.go

View File

@@ -0,0 +1 @@
v1 06237b31f03d163eb69463b1ed12623cc108d0b45b94e5ae0e3b2b5a70d1e702 c22cd4fd2d2dee9f000cd0570ba69951bf9c78a84ac5a3c68376427f31c9c75f 114 1770918365370342800

View File

@@ -0,0 +1 @@
v1 0673acf40a350314ccff3ad3a28582f66746f56b1cde4a0197a1250b07825a3e e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918407157250900

View File

@@ -0,0 +1 @@
v1 0675aedc2db3a682cb07beda83e90dd0454dd420ae8393bab9e87bef6e42070c 72859f1b45db304cc7987d3478a9645a5cd767f44434bbc30bcb7f6aa39843dd 681 1770918396128253600

View File

@@ -0,0 +1 @@
v1 067a11d0b08737214af0c39478b2873abf9128687a4787e808c9f94be46cbb71 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918395390998800

View File

@@ -0,0 +1 @@
v1 0697fc44d86a05c9d973255dd6948aa9e7bcf4046acb792d307262ffac832733 202057c45e9b4595f4b42bd5fd7e8530ebff0744f42367e854f861fb747e0b6e 244490 1770918410303372300

View File

@@ -0,0 +1 @@
v1 06fa800b083da21f3a66ce1e93d95a28c91e0bb25c22606f6c85831df1537b61 eaaedaefd7694a59b99895f61ca19b2524caef1fc5e1262185090e9009a3459b 65 1770918414588555600

View File

@@ -0,0 +1 @@
v1 070eee714ee3fa70173724ca55dfaf8fe3879bc3246586ec565156f0b62ff1af 0984b7d97b88792665deffe495fa1e2e1be08824ff671a62bbc2f8d8db00a6d9 32892 1770918408736839400

View File

@@ -0,0 +1 @@
v1 073b156dc9e5fb3ada33284fceb4b36229e1a0bbd7da83c2c8e0e827b0906909 9c42b5d6479a34ce1f76a3a69dba15701cd46ab2b08ef17b61ed8cd9d47f2bb3 7830 1770918405552280900

View File

@@ -0,0 +1 @@
v1 0751c29e219a976e3aa362666319cdbc3800f388e5879ad847a4342c500b35d0 055d52cbb63e08e80460966afd126328672a1206444a73ecc166f00d5646e87e 55 1770918407708896500

View File

@@ -0,0 +1 @@
v1 0790006ca423cb92b96ff88a11550ad1e82103916d51cbf93f0f6fa6a458f3e5 492f05f4be49e62ac750011917034aeb1228a3d212e31d139092076665dbb3f8 56104 1770922385609211500

View File

@@ -0,0 +1 @@
v1 07e9ce4314e0939708d2d4c80e9144101d65fb18fe2ce0a9646eaa13fea5aac1 5aa20c17c6c86a04c7caa53e21a4d2e12366bd066656c4181f0c425130a28043 543 1770918370748763600

View File

@@ -0,0 +1 @@
v1 082f4229945c043b1ce8da1d76920d48321f0011039943baf19fc1af7c7f9a07 5d50e3d3dd93bc473747e24089d818e4ef19109a73295cee533373b041808c90 4493690 1770918411568190400

View File

@@ -0,0 +1 @@
v1 0877d4bf976c0f9fcf4931b1b2abe43fd9731240965d501dc172da510238e759 acfd0e76cdbb43c4699db083bcee6fe182b90d865c6bcd1217891a82d95107c7 25990 1770918402922840600

View File

@@ -0,0 +1 @@
v1 08a5dd2b8489fa0cb9ae76bc06c2a97da4e5efcc481504df403c4cdb2c452d9d e3bbf4bb15b7a738e26ee488bc8eba6945dd9d825459592aead64356d7879cac 795 1770918368361965100

View File

@@ -0,0 +1,8 @@
./format.go
./fs.go
./glob.go
./readdir.go
./readfile.go
./stat.go
./sub.go
./walk.go

View File

@@ -0,0 +1 @@
v1 08c3fa55c3108d8243a11e38c86b32e1ddc35d451084437beda27cd46faf4b60 07272ff06b27cc441d6096a61147ac9e0651fee6d6c691dc86dd410224d4c8c0 4372 1770918373486526700

View File

@@ -0,0 +1 @@
v1 08c53bbf9c7f288c46df6fc2862f8febaab861553af2ccec79ee949113f13637 4bb03ef5983003a093f7b40914d8c3f4dbc2164a6853f4babf659d47e8e66ea2 130 1770918408709399100

View File

@@ -0,0 +1 @@
v1 08ce13f899fd620fbc0591df7e6ce0f353e5787beddfe0cbbc41242a8356c994 3a2b7996f367c9b772322ae884cd50bdf360445a22c5225bc2daa3fe59ea2dae 2465 1770918373789220100

View File

@@ -0,0 +1 @@
v1 093b12d2d8f93ba480f8aaa2f72763586520145260f9ad96919805823542ad71 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918409083106500

View File

@@ -0,0 +1 @@
v1 09529e044bd4da72adec5e6552d9f47375dd9d3b01f82a43e88e557ca0203368 4822eccbe5d8231187ba1513d26a35549ba0dea8cdc156083815c7659a0bff1d 381476 1770918407876283800

View File

@@ -0,0 +1 @@
v1 0963a29e4f34fb47b87381ee1f6b8e0d832e0342ba40289ae16dd22b6e82c88d 40239779b4a5363f3dea3c46bfea0152177ca32e6b40b415833d85f0374b9842 25 1770918396001638500

View File

@@ -0,0 +1 @@
v1 0a003339897980f5bfb8a01a2359e2a537b5dcc877b10c8c848db5963e922a75 90a7c1f510c0bb3c07077cdf50c4a36e841f6f60585e9fe9f2150fa6beb5ba41 9100102 1770918414582909700

View File

@@ -0,0 +1,18 @@
./charset.go
./collation.go
./cp1250.go
./cp1251.go
./cp1252.go
./cp1253.go
./cp1254.go
./cp1255.go
./cp1256.go
./cp1257.go
./cp1258.go
./cp437.go
./cp850.go
./cp874.go
./cp932.go
./cp936.go
./cp949.go
./cp950.go

View File

@@ -0,0 +1 @@
v1 0ab440a207042735c83f07520cdfe7bf6f88118469bebd9f7e22bc310aaf4153 48dcffd6203ee541a43fb13c5d947b744abd96043f264561e19caefe279967a8 11 1770918404287890900

View File

@@ -0,0 +1 @@
v1 0ac38eb44a22f67113c8e58915dcc0844565457291b4ea3ea0275a65c33c9955 7682397e85e51550dfe03761a7774528bbb6cae778ab319f1c4eaa61d21805ea 1033524 1770918405601589100

View File

@@ -0,0 +1 @@
v1 0b0c2a413125b4e864183e41e1436861c885c165e10c3ed79b9d709cce7769e3 555e3056e50f7bcc6487e274b99d6479f77a57d177ebdf663f2cefab23af84dc 28 1770918405773390600

View File

@@ -0,0 +1 @@
v1 0b328a313ff35f2259b25fecc81d124af627a2a104746dcd18dcf7db1db6ed4a e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918410783389100

View File

@@ -0,0 +1 @@
v1 0b4544062c7ca364722f83291f59cf377bce4fd55051feb5fae1a984e5698a28 016d6f2b3896537d352ad160a3359664a3d12d78251ae146363e0133ae2f708b 658478 1770918400334733800

View File

@@ -0,0 +1,8 @@
./builder.go
./clone.go
./compare.go
./iter.go
./reader.go
./replace.go
./search.go
./strings.go

View File

@@ -0,0 +1 @@
v1 0bdbbe93d4ea1ff23cb5eee4451ac102a14b2d9ffdada85812fa287d2816f84f e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770922385457449400

View File

@@ -0,0 +1 @@
v1 0be4860b9cfe7c7f6f9feb925d3c79b5be0802542ec505be457321b11c3e772c d3f21047470b949bde25adaa11dec4f8bb3dad35cf0efe10be000340862891cb 93 1770918405715119000

View File

@@ -0,0 +1 @@
v1 0c2447c452f4d81bdcd7cbe753188b140e440a11272303531ec8b352401cb786 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918402542079200

View File

@@ -0,0 +1 @@
v1 0c5393225334268391b87396aa206129e215560256001330e810cea276164920 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918412823095700

View File

@@ -0,0 +1 @@
v1 0c65b056839e50b20f5826c75f1a15f6d807d117685e50d39a3c435761aa3bc4 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 1770918411339452600

Some files were not shown because too many files have changed in this diff Show More