diff --git a/cmd/ktib/app/app.go b/cmd/ktib/app/app.go index 624cd07aba90ec6ae7b4099fa00ddb7356e5657b..31fe043b2ef8ff6fc3d549e9ed4eb3870716bfc2 100644 --- a/cmd/ktib/app/app.go +++ b/cmd/ktib/app/app.go @@ -12,15 +12,14 @@ package app import ( - "gitee.com/openeuler/ktib/pkg/utils" - "gitee.com/openeuler/ktib/pkg/logging" + "gitee.com/openeuler/ktib/pkg/utils" ) func Run(version string) error { - if utils.ReexecInit() { - return nil - } - cmd := NewCommand(version) - cmd.CompletionOptions.DisableDefaultCmd = true - return cmd.Execute() + if utils.ReexecInit() { + return nil + } + cmd := NewCommand(version) + cmd.CompletionOptions.DisableDefaultCmd = true + return cmd.Execute() } diff --git a/ktib b/ktib new file mode 100755 index 0000000000000000000000000000000000000000..5f378dc65ad72d79d411219ad7eff8c067645204 Binary files /dev/null and b/ktib differ diff --git a/pkg/project/bootstrap.go b/pkg/project/bootstrap.go index 8dc859df28e4e19f2098f08114a27ea14456e86c..ff9945905d4147d178ff1ef77e1bc51f837a4aa8 100644 --- a/pkg/project/bootstrap.go +++ b/pkg/project/bootstrap.go @@ -99,7 +99,10 @@ func (b *Bootstrap) InitWorkDir(types, config string) { // BuildRootfs 构建rootfs func (b *Bootstrap) BuildRootfs(configFile string) error { - target, _ := filepath.Abs(filepath.Join(b.DestinationDir, "rootfs")) + target, err := filepath.Abs(filepath.Join(b.DestinationDir, "rootfs")) + if err != nil { + return fmt.Errorf("获取绝对路径失败: %v", err) + } // 检查dnf并创建dev目录 if err := CheckDnfAndCreateDev(target); err != nil { @@ -109,10 +112,17 @@ func (b *Bootstrap) BuildRootfs(configFile string) error { // 创建字符设备和FIFO设备 devices := DefaultDevices() for _, dev := range devices { - if dev.Type == "c" { - CreateCharDevice(target, dev.Name, dev.Type, dev.Major, dev.Minor, dev.Mode) - } else if dev.Type == "fifo" { - CreateFifoDevice(target, dev.Name) + switch dev.Type { + case "c": // 字符设备 + if err := CreateCharDevice(target, dev.Name, dev.Type, dev.Major, dev.Minor, dev.Mode); err != nil { + return fmt.Errorf("创建字符设备 %s 失败: %v", dev.Name, err) + } + case "fifo": // FIFO设备 + if err := CreateFifoDevice(target, dev.Name); err != nil { + return fmt.Errorf("创建FIFO设备 %s 失败: %v", dev.Name, err) + } + default: + return fmt.Errorf("未知设备类型: %s", dev.Type) } } @@ -124,19 +134,23 @@ func (b *Bootstrap) BuildRootfs(configFile string) error { // 读取配置文件 data, err := os.ReadFile(configFile) if err != nil { - return fmt.Errorf("读取配置文件失败: %v", err) + return fmt.Errorf("读取配置文件 %s 失败: %v", configFile, err) } // 解析YAML配置 var config Config if err := yaml.Unmarshal(data, &config); err != nil { - return fmt.Errorf("解析YAML失败: %v", err) + return fmt.Errorf("解析YAML配置失败: %v", err) } // 安装软件包 packages := config.Packages.InstallPkgs - if err := InstallPackages(yumConfig, target, packages...); err != nil { - return fmt.Errorf("安装软件包失败: %v", err) + if len(packages) == 0 { + fmt.Println("警告: 未指定要安装的软件包") + } else { + if err := InstallPackages(yumConfig, target, packages...); err != nil { + return fmt.Errorf("安装软件包失败: %v", err) + } } // 配置rootfs