fix: replace exec 200 with flock -x 9 for zsh compatibility

This commit is contained in:
2026-01-25 20:33:08 +03:00
parent 76cb533851
commit e360e5e215

View File

@@ -148,10 +148,10 @@ jobs:
local history_size="${DEPLOY_HISTORY_SIZE:-10}" local history_size="${DEPLOY_HISTORY_SIZE:-10}"
if command -v flock > /dev/null 2>&1; then if command -v flock > /dev/null 2>&1; then
# Используем flock с exec для открытия файлового дескриптора (работает в zsh) # Используем flock с файлом напрямую (работает в zsh и bash)
# Zsh поддерживает только дескрипторы 0-9, поэтому используем 9
( (
exec 200>"$lock_file" if flock -x 9 "$lock_file"; then
if flock -x 200; then
# Записываем новую запись # Записываем новую запись
echo "$entry" >> "$history_file" echo "$entry" >> "$history_file"
@@ -164,7 +164,7 @@ jobs:
echo "❌ Failed to acquire lock on $history_file" echo "❌ Failed to acquire lock on $history_file"
exit 1 exit 1
fi fi
) ) 9>"$lock_file"
else else
# Fallback: простая запись без блокировки # Fallback: простая запись без блокировки
echo "$entry" >> "$history_file" echo "$entry" >> "$history_file"
@@ -512,10 +512,9 @@ jobs:
local lock_file="${history_file}.lock" local lock_file="${history_file}.lock"
if command -v flock > /dev/null 2>&1; then if command -v flock > /dev/null 2>&1; then
# Используем flock с exec для открытия файлового дескриптора (работает в zsh) # Используем flock с файлом напрямую (работает в zsh и bash)
( (
exec 200>"$lock_file" if flock -x 9 "$lock_file"; then
if flock -x 200; then
if [ -f "$history_file" ]; then if [ -f "$history_file" ]; then
# Заменяем последнюю строку со статусом deploying на финальный статус # Заменяем последнюю строку со статусом deploying на финальный статус
sed -i '$s/|deploying$/|'"$new_status"'/' "$history_file" sed -i '$s/|deploying$/|'"$new_status"'/' "$history_file"
@@ -531,7 +530,7 @@ jobs:
echo "✅ Deploy history updated (fallback method)" echo "✅ Deploy history updated (fallback method)"
fi fi
fi fi
) ) 9>"$lock_file"
else else
# Fallback: если flock недоступен # Fallback: если flock недоступен
echo "⚠️ flock not available, using simple update" echo "⚠️ flock not available, using simple update"
@@ -719,8 +718,7 @@ jobs:
if command -v flock > /dev/null 2>&1; then if command -v flock > /dev/null 2>&1; then
( (
exec 200>"$lock_file" if flock -s 9 "$lock_file"; then
if flock -s 200; then
if [ -f "$history_file" ]; then if [ -f "$history_file" ]; then
cat "$history_file" cat "$history_file"
else else
@@ -735,7 +733,7 @@ jobs:
echo "" echo ""
fi fi
fi fi
) ) 9>"$lock_file"
else else
# Fallback: если flock недоступен # Fallback: если flock недоступен
if [ -f "$history_file" ]; then if [ -f "$history_file" ]; then
@@ -754,10 +752,10 @@ jobs:
local history_size="${DEPLOY_HISTORY_SIZE:-10}" local history_size="${DEPLOY_HISTORY_SIZE:-10}"
if command -v flock > /dev/null 2>&1; then if command -v flock > /dev/null 2>&1; then
# Используем flock с exec для открытия файлового дескриптора (работает в zsh) # Используем flock с файлом напрямую (работает в zsh и bash)
# Zsh поддерживает только дескрипторы 0-9, поэтому используем 9
( (
exec 200>"$lock_file" if flock -x 9 "$lock_file"; then
if flock -x 200; then
# Записываем новую запись # Записываем новую запись
echo "$entry" >> "$history_file" echo "$entry" >> "$history_file"
@@ -770,7 +768,7 @@ jobs:
echo "❌ Failed to acquire lock on $history_file" echo "❌ Failed to acquire lock on $history_file"
exit 1 exit 1
fi fi
) ) 9>"$lock_file"
else else
# Fallback: простая запись без блокировки # Fallback: простая запись без блокировки
echo "$entry" >> "$history_file" echo "$entry" >> "$history_file"