winsetup

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2024 License: MIT Imports: 12 Imported by: 0

README

WinSetup 项目简介

此项目是一个用于Windows并发安装软件包的Go程序,读取配置文件(config.toml),根据配置进行软件包的安装、升级等操作。程序通过并发处理加快安装速度,并且具备处理安装过程中常见问题的功能。

一次配置,终身使用,从此再也无惧重装系统后安装软件和环境的痛苦。

功能特性

  • 支持并发安装,提升效率
  • 自动跳过已安装的软件
  • 可选参数:忽略安全哈希检查、跳过升级、卸载先前版本
  • 通过配置文件灵活管理安装任务

安装

安装依赖程序

如果需要代理请在安装前执行: winget settings --enable ProxyCommandLineOptions

安装本程序

下载可执行文件或使用go install

go install github.com/atopx/winsetup@latest

使用

编写toml配置文件

我的真实配置: config.example.toml

# 并发安装的协程数量, 建议1-8之间
concurrent = 4

# 路径别名
[location]
app = "C:\\apps"
lib = "C:\\libs"

# 这个例子实际安装位置: C:\apps\vscode
[[target]]
# 必选参数, 如果不知道软件ID, 可以使用 winget search, 比如: winget search vscode
id = "Microsoft.VisualStudioCode"
# link 基础安装路径, 程序会从`[location]`下找对应的路径链接,找不到会使用默认路径安装, 可选
link = "app"
# path 在基础路径上的拼接路径
# 可选、默认根据ID自动转换: "Microsoft.VisualStudioCode" => "microsoft\visualstudiocode"
path = "vscode"
# no-upgrade 如果已安装的版本已存在,则跳过升级, 可选、默认false
no-upgrade = true
# ignore-security-hash 忽略安装程序哈希检查失败, 可选、默认false
ignore-security-hash = false
# uninstall-previous 升级期间卸载以前版本的程序包, 可选、默认false
uninstall-previous = false
# skip-dependencies 跳过处理包依赖项和 Windows 功能
skip-dependencies = false
# version 使用指定的版本;默认为最新版本
version = ""

# 这个例子实际安装位置: C:\libs\golang\go
[[target]]
id = "Golang.Go"
link = "lib"
执行
winsetup.exe -c config.toml -n 2
参数说明
Usage of winsetup.exe:
  -c config.toml
        配置路径, 默认当前路径的config.toml (default "config.toml")
  -n 4
        并发安装的协程数量, 默认4 (default 4)
错误处理

程序运行过程中,如果遇到错误,会记录到日志中并继续处理其他任务。确保正确配置 config.toml 以减少错误的发生。

贡献

欢迎提交PR和Issue,如果有任何问题或建议,请联系项目维护者。

许可证

此项目基于MIT许可证开源。详见LICENSE文件。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL