#updater #update #version #repository #apps #github #create

updater-lp

一个用于轻松创建具有自动更新功能的命令行应用程序的库

2 个不稳定版本

使用旧的Rust 2015

0.3.0 2018年12月17日
0.2.1 2018年12月17日

#26 in #updater

MIT 许可证

23KB
348 代码行

updater-lp

一个使用GitHub基础的简单更新器!轻松为您的命令行应用程序创建自动更新!

工作原理?

在Github上托管您的代码!使用版本发布标记您的代码,然后将构建附加到这些发布上。

updater-lp 然后会在您的仓库中查找发布,然后会将这些发布与您声明的当前应用程序版本进行匹配。如果找到较新版本,则可以使用它通过用来自Github的新二进制文件替换您的当前二进制文件来更新您的应用程序。

如何使用它。

首先,源代码库中有一个 测试应用程序,它展示了如何使用它,以及如何用于测试库的功能。

包含库

updater-lp 添加到您的 cargo.toml

[dependencies]
updater-lp = "0.2"

使用库

然后您需要设置您的上游地址。 updater-lp 是无结构体(或更好称为静态)的,因此建议您有一个 &'STATIC str 与您的仓库地址。

static REPO_PATH : &str = "https://github.com/snsvrno/lpsettings-rs";

然后在合适的地方,您应该检查最新版本。我建议添加一些防止每次程序运行时进行检查的内容(这样您就不会执行过多的不必要的GitHub API调用),而是每天检查一次更新。

let this_version = updater_lp::create_version(&[01,2,3,4]);

match updater_lp::get_latest_version(REPO_PATH) {
    Err(error) => { 
        // can't check the version for some reason, `error` should state why.
    },
    Ok(latest) => {
        if latest > this_version {
            updater_lp::update_with_version(REPO_PATH,&latest);
        }
    }
}

我不建议在 ? 上使用 get_latest_version,因为您可能不希望您的程序错误/失败,如果无法连接到仓库。

关于版本的一些说明

updater-lp 使用 version-lp 进行所有版本。这意味着版本很容易比较。版本在本软件包中公开,以便于使用,而无需要求您在 cargo.toml 中添加额外的依赖项。

依赖关系

~25–38MB
~674K SLoC