54 lines
1.6 KiB
Bash
Executable File
54 lines
1.6 KiB
Bash
Executable File
#!/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 |