问题标签 [shelly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
330 浏览

haskell - QSem 似乎没有阻塞线程

我正在编写一个简单的脚本来使用Shelly库并行运行一堆任务,但我想限制任何时候运行的最大任务数。该脚本获取一个文件,每行都有一个输入,并为该输入运行一个任务。文件中有几百个输入,我想一次限制为大约 16 个进程。

当前脚本实际上使用初始计数为 1 的 QSem 限制为 1(很好地尝试)。我似乎遗漏了一些东西,因为当我在具有 4 个输入的测试文件上运行时,我看到了这个:

所以线程并没有像我期望的那样阻塞在 QSem 上,它们都是同时运行的。我什至已经实现了我自己的信号量MVarTVar而且都没有按我预期的方式工作。我显然错过了一些基本的东西,但是什么?我还尝试编译代码并将其作为二进制文件运行。

0 投票
0 回答
115 浏览

multithreading - 为什么使用 Shelly.Background 调用外部可执行文件时主可执行文件很忙

我正在尝试用Shelly编写一个程序来并行编译 Delphi 项目。我以为程序会在等待 Delphi 编译器返回时被阻塞。但是我的程序在编译了 2 个项目后开始最大化一个 CPU 核心。我无法弄清楚它这么忙在做什么。请帮忙?谢谢。

ps:我对 Haskell 很陌生,如果我没有以正确的方式实现这一点,我们将不胜感激。

0 投票
1 回答
1377 浏览

haskell - Haskell Shelly 示例代码

我试图弄清楚如何使用 Shelly (Shell.Pipe) 库。到目前为止,我有:

我可以找到所有的 epub 文件,但是我不知道如何对每个 epub 文件进行操作?例如,我想对由 Sh Monad 包裹的文件名运行 ebook-convert 命令。

顺便说一句:互联网上的例子真的很少......而且有两个相似的库非常令人困惑:Shelly 和 Shelly.Pipe。这两个内部的函数具有相同的名称和不同的类型: 在 Shelly.Pipe 中:

在雪莉:

真是令人沮丧!

PS:在John Wiegley的帮助下, 我终于让代码工作了。我将下面的代码发布给可能使用它的人。注意解包的使用。

0 投票
2 回答
639 浏览

haskell - Shelly:将字符串转换为 Shelly FilePath

我需要执行Shellycp_r库中的函数以复制到.ab

然而,

产量

对于 的第一个和第二个参数cp_r

我如何使用StringFilePath在我知道的任何平台上定义为字符串)作为参数cp_r

注意:这个问题故意不显示任何研究工作,因为它是问答式回答的。

0 投票
1 回答
41 浏览

haskell - 使用 Shelly 运行外部进程时,如何处理多行输出?

我正在寻找一个 type 的函数Text -> [Text],本质上它会根据换行符分割文本。但是我不能只是分裂,\n因为这可能会被转义,例如\\n,我不确定还有什么其他并发症。

主文件

例子.sh

输出./example.sh

所以这是 3 行的输出。

Shelly 是否支持某些功能来处理上述问题?或者也许是其他一些 Haskell 库来解析输出?我猜它看起来像putStrLn但不是输出到IO ()它而是输出到[Text]?

0 投票
0 回答
362 浏览

bash - 使用 Shelly/Turtle 通过 ssh 运行命令

给定一个命令:

其中command,在远程主机上执行时host,应该是:

如何使用Haskell ShellyHaskell Turtle执行此命令?

Shelly 提供了一个sshPairs,但它没有command正确引用。

在 bash 脚本中引用可能很脆弱,这两个库(或任何 Haskell 库,就此而言)是否试图改进这一点?

0 投票
1 回答
277 浏览

ssl - 使用 Tasmota 的 Shelly 1PM 上的 MQTT 错误 BR_ERR_BAD_VERSION

我尝试将 Shelly 1 PM 智能功率继电器连接到托管 MQTT 代理。

设备上的固件是来自 dev 分支的定制 Tasmota 8.3.1,已USE_MQTT_TLS启用。TLS 的端口正确设置为 8883,并且代理服务正在 mqtt.bosch-iot-hub.com 上运行

当设备启动时,我可以看到串口上的日志消息如下:

根据 Tasmota 文档 ( https://tasmota.github.io/docs/TLS/ ),返回代码 4 是 BR_ERR_BAD_VERSION 的代码

这个错误常量似乎来自 BearSSL,意思是“传入的记录版本与预期的版本不匹配”。(根据http://sources.freebsd.org/HEAD/src/contrib/bearssl/tools/errors.c

使用在线 TLS 测试工具并检查 mqtt.bosch-iot-hub,它仅支持 TLS 1.2(禁用 1.3、1.1 和 1.0 以及 SSLv2 和 SSLv3)。BearSSL 网站声明它支持 TLS 1.2

我尝试在 中设置 Tasmota 的日志级别my_user_config.h,但它没有记录更多详细或详细的信息。

错误消息应该是什么意思?是 BearSSL 堆栈或服务端的 TLS 不兼容吗?如何在 Tasmota 上启用详细日志记录以查看详细的 TLS 握手信息?我还缺少什么吗?

0 投票
0 回答
31 浏览

nix - 如何编写一个启动并可以在 nix-shell 环境中运行命令的 Haskell 程序?

我想发起一个nix-shell(如果不熟悉Nix),这可以被认为是加载特定环境的 bashs 地狱,有点昂贵)。一旦作为一个单独的进程启动,我希望能够向该 shell 发送命令并检索结果。这里有一些与并发问题相关的复杂性的可能性,但我认为 shelly 可能能够像这样简单地处理它:

在第一个run_中,我们启动一个具有cargo可用命令的 shell,然后我们应该能够使用对 的第二个调用来运行它run_。但是,这会导致PATH 似乎不正确的错误nix-shell- 奇怪的是,即使在路径中它也不再是容器。

我愿意接受有关如何使用各种方法来执行此操作的建议,而不必使用 shelly。

0 投票
0 回答
37 浏览

haskell - 在 Shelly 中作为自定义命令的参数输出

我想做相当于

我目前的尝试:

有没有办法以某种方式避免从 FilePath 到 Text 的转换?谢谢

0 投票
1 回答
177 浏览

javascript - 使用可编写脚本的应用程序向 Shelly 云发送请求

在将 Shelly2.5 与我的快门连接并接线后,尝试将其与 Siri 连接。决定使用 Scriptable 应用程序执行此操作,然后将 Siri 命令连接到它,这样它就会运行。

目前在从 Scriptable 应用程序发送请求时遇到问题,因为代码如下所示,当我尝试从 Postman 触发它时它可以工作。

目前的回应:

请注意,我更改了 shelly 云的真实令牌和真实子域。如果有人知道如何解决这个问题会很高兴,谢谢