#send-email #dead #man #timer #toml #switch #user

程序+库 dead-man-switch

一个简单无废话的死手开关

7 个版本

0.3.1 2024 年 7 月 1 日
0.3.0 2024 年 5 月 13 日
0.2.0 2024 年 5 月 11 日
0.1.3 2024 年 3 月 23 日

#74电子邮件

Download history 311/week @ 2024-05-10 22/week @ 2024-05-17 2/week @ 2024-05-24 1/week @ 2024-06-07 197/week @ 2024-06-28 35/week @ 2024-07-05 47/week @ 2024-07-26 6/week @ 2024-08-02

每月 53 次下载

AGPL-3.0-only

1MB
707

死手开关

AGPL-v3 Crates.io docs

这是一个简单的死手开关实现。

自行承担风险。检查代码(友好代码)。

screenshot

死手开关旨在需要积极操作,否则将自动部署。它们非常适合担心意外死亡、绑架或记忆丧失的情况。如果您在一定时间内没有激活触发器,开关将自动发送所需的消息。

功能

  • 简单:易于使用和设置。
  • 可靠:用 Rust 实现。
  • 最小化:依赖项很少,需要最少的资源。
  • 警告:在最终电子邮件之前发送警告电子邮件。
  • 附件(可选):与最终电子邮件一起发送附件。

工作原理

如果您想要一个非常简单的解释和项目的动机,请查看我的博客文章 这里

启动程序后,它将在一个操作系统无关的配置文件位置创建一个 config.toml 文件

  • Linux:$XDG_CONFIG_HOME,例如 $HOME/.config|/home/alice/.config
  • macOS:$HOME/Library/Application Support,例如 /Users/Alice/Library/Application Support
  • Windows:{FOLDERID_RoamingAppData},例如 C:\Users\Alice\AppData\Roaming

编辑 config.toml 文件以符合您的需求。提供了一些默认值以供参考。

死手开关由两个计时器组成

  1. 警告定时器:此定时器设置为在 timer_warning(秒)值,位于 config.toml 文件中。如果用户在定时器达到0之前没有签到,它将向用户自己的指定电子邮件地址发送警告邮件,即 fromconfig.toml 中。
  2. 死者的定时器:警告定时器到期后,定时器将变为死者的定时器,定时器将设置为 timer_dead_man(秒)。如果用户在定时器达到0之前没有签到,它将向 config.toml 中指定的电子邮件地址发送最终邮件,即 toconfig.toml 中。

如果您想在死者的电子邮件中发送附件,您可以在 config.toml 中指定 attachments 选项配置,并提供要附加文件的 绝对路径

要签到,您只需按 c 键即可,就像在 check-in 中一样。

安装

安装死者的开关有几种方法

  1. Crates.iocargo install dead-man-switch

  2. GitHubcargo install --git https://github.com/storopoli/dead-man-switch

  3. 从源代码:克隆仓库并运行 cargo install --path .

  4. 使用 Nix: nix run github:storopoli/dead-man-switch

  5. 使用 Nix Flakes:将其添加到您的 flake.nix

    {
      # ...
      inputs.dead-man-switch = {
        url = "github:storopoli/dead-man-switch";
        inputs = {
          nixpkgs.follows = "nixpkgs";
          flake-parts.follows = "flake-parts";
        };
      };
    
      outputs = inputs @ { self, ... }:
      {
        imports = [
          {
            nixpkgs.overlays = [
              # ...
              inputs.dead-man-switch.overlays.default
            ];
          }
        ];
      };
    
    }
    

    然后 dead-man-switch 将作为 pkgs.dead-man-switch 可用;

作为库使用

死者的开关可以用作库。这包括配置和发送电子邮件所需的全部函数;以及定时器。

为此,您可以在您的 Cargo.toml 中添加以下内容

[dependencies]
dead-man-switch = { version = "0.2", default-features = false }

请确保您已禁用默认功能,以避免来自 ratatuicrossterm 依赖项的任何额外膨胀。

最低支持的 Rust 版本

此软件包使用当前 Debian 稳定版 Rust 作为最低支持的 Rust 版本(MSRV)。请查阅 Debian 的 rustc 软件包 获取更多详细信息。

目前,MSRV 是 1.63.0

许可

源代码根据 AGPL v3 许可证 许可。

AGPL-v3

依赖关系

~15–28MB
~531K SLoC