add
This commit is contained in:
54
scripts/claude-arch-safety-check.sh
Executable file
54
scripts/claude-arch-safety-check.sh
Executable file
@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# Arch Linux用のClaude Code安全チェックスクリプト
|
||||
|
||||
COMMAND="$1"
|
||||
|
||||
# Arch Linux特有の危険なコマンド
|
||||
ARCH_DANGEROUS=(
|
||||
"pacman -Rdd" # 依存関係無視の削除
|
||||
"pacman -Syu --noconfirm" # 確認なしのシステム更新
|
||||
"rm -rf /boot" # ブートローダー削除
|
||||
"rm -rf /etc/pacman" # pacman設定削除
|
||||
"makepkg --asroot" # rootでのパッケージビルド
|
||||
"yaourt" # 非推奨のAURヘルパー
|
||||
)
|
||||
|
||||
# 警告が必要なコマンド
|
||||
ARCH_WARNING=(
|
||||
"pacman -Syu"
|
||||
"pacman -R"
|
||||
"systemctl disable"
|
||||
"systemctl mask"
|
||||
"mkinitcpio"
|
||||
"grub-mkconfig"
|
||||
)
|
||||
|
||||
# 基本的な危険コマンドチェック
|
||||
source "$(dirname "$0")/safe-command-check.sh" 2>/dev/null || true
|
||||
|
||||
# Arch特有のチェック
|
||||
for pattern in "${ARCH_DANGEROUS[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "❌ Arch Linuxで危険なコマンド: $COMMAND"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
for pattern in "${ARCH_WARNING[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "⚠️ システムに影響するコマンド: $COMMAND"
|
||||
echo "実行前にスナップショットの作成を推奨します"
|
||||
read -p "続行しますか? (yes/no): " confirm
|
||||
if [[ "$confirm" != "yes" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# AURヘルパーの使用をチェック
|
||||
if [[ "$COMMAND" =~ (yay|paru|aurman) ]]; then
|
||||
echo "📦 AURヘルパーを使用: $COMMAND"
|
||||
echo "AURパッケージは信頼できるか確認してください"
|
||||
fi
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user