Compare commits

..
1 Commits
Author SHA1 Message Date
wyj 0657950327 update: add a test.sh for a demo of main menu and sub menus 2024-03-30 18:02:08 -04:00
2 changed files with 60 additions and 32 deletions
-32
View File
@@ -1,32 +0,0 @@
#!/bin/bash
# 检查 TARGETDISK 变量是否已定义
if [ -z "$TARGETDISK" ]; then
echo "TARGETDISK is not set. Please run the disk selector script first."
exit 1
fi
# 使用 gum confirm 警告:这将删除目标硬盘上的所有数据
if ! gum confirm --prompt "Warning: This will erase all data on $TARGETDISK. Proceed?"; then
echo "Aborting."
exit 1
fi
# 使用 parted 工具创建新的 GPT 分区表
parted -s "$TARGETDISK" mklabel gpt
# 创建 EFI 分区,大小为 512M,后面是系统分区,占据剩余空间
parted -s "$TARGETDISK" mkpart primary fat32 1MiB 513MiB
parted -s "$TARGETDISK" set 1 esp on
# 计算起始点,为 513MiB 后的第一个 MiB
parted -s "$TARGETDISK" mkpart primary btrfs 513MiB 100%
# 格式化 EFI 分区为 FAT32
mkfs.fat -F32 "${TARGETDISK}1"
# 格式化系统分区为 Btrfs
mkfs.btrfs "${TARGETDISK}2"
echo "Partitioning and formatting complete."
Executable
+60
View File
@@ -0,0 +1,60 @@
#!/bin/bash
# 确保安装 gum
# pacman -Sy gum
main_menu() {
while true; do
clear
# 使用 gum 或其他工具显示主菜单
option=$(gum choose "分区硬盘" "设置网络" "安装基本系统" "开始安装" "退出安装")
case $option in
"分区硬盘")
partition_disk
;;
"设置网络")
setup_network
;;
"安装基本系统")
install_base_system
;;
"开始安装")
start_installation
break
;;
"退出安装")
exit 0
;;
esac
done
}
partition_disk() {
echo "分区硬盘..."
# 这里添加分区逻辑
gum confirm "返回主菜单?" && return
}
setup_network() {
echo "设置网络..."
# 这里添加网络设置逻辑
gum confirm "返回主菜单?" && return
}
install_base_system() {
echo "安装基本系统..."
# 这里添加安装基本系统的逻辑
gum confirm "返回主菜单?" && return
}
start_installation() {
echo "开始安装..."
# 这里添加实际开始安装的逻辑
echo "安装完成。"
exit 0
}
# 主菜单
main_menu