2 个版本

0.3.5 2021 年 6 月 18 日
0.3.3 2021 年 6 月 18 日

#20 in #send-notifications

自定义许可

17KB
146

ssup!

ssup 是一个简单的跨平台工具,可以通过 cli 向本地系统或 Telegram 发送通知。它还可以在长时间运行的(或其他)命令完成后发出警报。可以通过在 ssup 命令的末尾指定命令或通过将 ssup 与其他命令链接来实现。有关更多示例,请参阅下面的 CLI 选项。

示例

# Send a notification to local system
$ ssup -m "Hello world!"

# Send a notification to telegram
$ export SSUP_TG_BOT_TOKEN=<Your telegram bot token>
$ ssup -m "Hello world!" -d telegram -c <your-telegram-chat-id> 

# Run a custom command and send notification after it finishes. Advantage of this is that ssup will also report whether command was successful or not.
$ ssup -m "Hello world!" sleep 5

# Alternate ways to run a custom command and send notification after it finishes
$ sleep 5; ssup -m "Hello world!"  # Always send notification
$ sleep 5 && ssup -m "Hello world!" # Send notification only on success
$ sleep 5 || ssup -m "Hello world!" # Send notification only on failure

当前支持的平台

  • macOS
  • Linux
  • Windows

当前支持的架构

  • x86_64
  • aarch64 (例如,Raspberry Pi 4b,Apple M1)

当前支持的通告目标

  • 本地(即系统通知,这由伟大的 notifica crate 提供)
  • telegram

CLI 选项

   █████  █████  █████ ████ ████████ 
  ███░░  ███░░  ░░███ ░███ ░░███░░███
░░░█████ ░█████  ░███ ░███  ░███ ░███
  ░░░░███░░░░███ ░███ ░███  ░███ ░███
  ██████ ██████  ░░████████ ░███████ 
░░░░░░░  ░░░░░    ░░░░░░░░  ░███░░░  
                            ░███     
                            █████    
                           ░░░░░     
ssup 0.3.5 - Shantanu Goel <shantanu+ssup@shantanugoel.com>
A utility to send notifications to local system or telegram

USAGE:
ssup [OPTIONS] --message <message> [command]

ARGS:
<command>    Specify a command/executable to run and notify when it finishes

FLAGS:
-h, --help       Prints help information
-V, --version    Prints version information

OPTIONS:
-t, --title <title>                Optional title for the notification [default: Ssup!]
-m, --message <message>            Notify with this message
-d, --destination <destination>    Choose where to send the notification to [default: local] [possible values: local, telegram]
    --chat-id <chat-id>            {Telegram specific option} Chat id to which notification should be sent
    --bot-token <bot-token>        {Telegram specific option } Optionally specify Telegram bot token in command instead of reading from env

Telegram 使用

  • 创建一个机器人并获取一个机器人令牌,按照 这些说明 进行操作
  • 从您想要接收通知的 Telegram 账户发送一条消息到您的机器人
  • 运行以下命令获取聊天 ID
    • curlhttps://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates | jq.message.chat.id
    • $TELEGRAM_BOT_TOKEN 替换为步骤 1 中获取的令牌值
    • 如果您还没有安装 curljq,您可能需要安装它们
      • 或者,您可以在浏览器中输入此 URL https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates 并搜索 id: 以获取值
  • 请使用上述 CLI 选项中提供的机器人令牌和聊天 ID 值。

构建

对于 Linux 平台,此 crate 对 libdbus 有本地依赖,因此在尝试编译之前,您需要安装相应的包(例如,在 debian/ubuntu 上安装 libdbus-1-dev)。

TODO

  • 添加对 32 位 (aarch32 和 i686/386) Linux 构建的支持
  • 添加自定义 webhook 目标
  • 添加测试
  • ?

依赖

~8–25MB
~351K SLoC