fix: replace exec 200 with flock -x 9 for zsh compatibility
This commit is contained in:
28
.github/workflows/deploy.yml
vendored
28
.github/workflows/deploy.yml
vendored
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user