小编Fre*_*sen的帖子

从Swift命令行程序中使用NSURLSession

我想在将它集成到更大的应用程序之前测试一个小概念验证命令行应用程序.我要做的是使用NSURLSession使用此示例下载一些数据.但是,如果我使用简单OS X命令行应用程序中给出的示例,则应用程序会在检索数据之前退出.

如何使用NSURLSession从独立命令行应用程序下载数据?我读到的是使用NSRunLoop但是我还没有在Swift中找到一个明确的例子,所以如果NSRunLoop实际上是要走的路,那么任何例子都会受到赞赏.

从Swift命令行应用程序的URL下载数据的任何其他策略也是受欢迎的(无限循环?).

macos nsrunloop nsurlsession swift

26
推荐指数
3
解决办法
6480
查看次数

Ruby - 提取正则表达式捕获组的最佳方法?

我正在阅读一个正则表达式组匹配问题,我看到有两种方法可以从正则表达式中引用捕获组,即,

  1. 匹配字符串方法例如string.match(/(^.*)(:)(.*)/i).captures
  2. Perl 式捕获组变量,例如 $1、$2 等,从 if match =~ /(^.*)(:)(.*)/i
  3. 更新:正如 0xCAFEBABE 提到的,还有第三个选项 - last_match方法

哪个更好?对于 1),为了安全起见,您必须使用 if 语句来防止 nils,那么为什么不直接提取信息呢?而不是调用字符串捕获方法的第二步。所以选项 2) 对我来说看起来更方便。

ruby regex

10
推荐指数
1
解决办法
9047
查看次数

当前文件行号为$.变量

我知道我可以获取我使用内置变量循环的文件的当前行号$..作为一个实验,我用它来为文件中的每一行添加前缀$.(当前行号)的值.但是,这没有按预期工作.即给出以下文件内容

line one
line two
line three
Run Code Online (Sandbox Code Playgroud)

那么我希望以下代码为每一行添加其行号前缀

for my $line (<FILE>) {
    print "$. : $line";
}
Run Code Online (Sandbox Code Playgroud)

但是,它给出了以下输出

3 line one
3 line two
3 line three
Run Code Online (Sandbox Code Playgroud)

在每行前面加上文件中的行数.而不是当前的线.

perl line-numbers text-files

9
推荐指数
1
解决办法
3859
查看次数

Jenkins构建流程与工作流程(管道)插件

我注意到Jenkins有(至少)两个编排选项

我首先找到了Build Flow并实现了一个编排工作,它似乎可以满足我们的需求.切换到Pipeline有什么好处吗?我对切换到Pipeline的想法是

  • Pro - 项目似乎比Build Flow更活跃
  • Con - DSL看起来要复杂得多

jenkins jenkins-plugins jenkins-build-flow jenkins-workflow

8
推荐指数
1
解决办法
8841
查看次数

在Swift 3中迭代一个带索引的数组

我正在尝试使用Swift 3中的索引迭代一个数组但是继续进行

表达式类型'[Int]'在没有更多上下文的情况下是不明确的

这可以通过以下示例在游乐场中重现:

var a = [Int]()
a.append(1)
a.append(2)
// Gives above error
for (index, value) in a {
  print("\(index): \(value)")
}
Run Code Online (Sandbox Code Playgroud)

我不确定它要求的背景.

arrays swift

8
推荐指数
1
解决办法
1万
查看次数

Jenkinsfile - 获取构建之间的所有更改

参考这个问题有没有办法从使用多分支管道时获得等效信息?特别是 - 自上次成功构建以来的提交列表.

目前我们使用以下内容

def scmAction = build?.actions.find { action -> 
    action instanceof jenkins.scm.api.SCMRevisionAction
}
return scmAction?.revision?.hash
Run Code Online (Sandbox Code Playgroud)

但是,如果多次提交被推送,这只会返回触发构建的最后一次提交.我接受一个新分支的第一个构建可能是ambiguious但得到触发构建提交列表时可能会非常有用.

jenkins jenkins-pipeline

8
推荐指数
1
解决办法
9054
查看次数

在Perl中使用系统命令而不是内置库/函数

有时我看到人们从Perl(以及其他脚本语言)调用系统grep,而不是使用内置的语言工具/库来解析文件.我想鼓励人们使用内置设施,我想征求一些原因,说明为什么使用内置工具是一种好习惯.我可以想到一些这样的

  • 使用库/语言设施更快.由于执行外部命令的开销,性能会受到影响.
  • 坚持语言设施更便携.

还有其他原因吗?

硬币的另一面是否有理由支持使用系统命令而不是内置语言设施?在这方面,如果一个Perl脚本基本上只调用外部命令(例如没有库的自定义实用程序),那么制作一个shell脚本可能更好吗?

scripting perl

7
推荐指数
1
解决办法
378
查看次数

Terraform:附加非托管 IAM 角色

地形版本:12

\n

我们有一个遗留的、不受 Terraform IAM 角色管理的问题,我想从一个aws_iam_policy_attachment块中引用该角色,并且我尝试了以下操作:

\n
  resource "aws_iam_policy_attachment" "example-attach" {\n  name = "example-attach"\n\n  roles = [ \n    aws_iam_role.managed-role.name, \n    "arn:aws:iam::1234567890:role/unmanaged-role"\n  ]\n\n  policy_arn = aws_iam_policy.example-policy.arn\n}\n
Run Code Online (Sandbox Code Playgroud)\n

试运行效果很好,但应用 TF 时说:

\n
\n

\xe2\x80\x93 ValidationError: 指定的 roleName 值无效。它必须仅包含字母数字字符和/或以下内容:+=,.@_-

\n
\n

有没有办法可以只引用非托管角色而不在 TF 中定义它?或者是否有某种非破坏性的方式来声明它,而不会改变与非托管角色有关的任何内容?

\n

amazon-web-services terraform terraform-provider-aws

7
推荐指数
1
解决办法
6123
查看次数

将JSON名称映射到Java类字段/方法(Jackson Parser)

摘要

在使用Jackson解析器时,如何将JSON名称映射到Java类的字段名称(可能略有不同)?

细节

我有传入的JSON文档,我想使用Jackson解析器转换为Java对象.这适用于JSON名称与最终Java对象字段名称匹配的位置(我在Play框架中执行此操作).

但是,传入的JSON文档中的某些JSON名称不适合使用不错的Java字段名称.目前,更改所有现有JSON文档以使用适当的Java命名约定是不可行的.

例如

{
  "goodName": "value",
  "not-so-handy": "value"
}
Run Code Online (Sandbox Code Playgroud)

我不能创建一个字段名称为"not-so-handy"的Java类,因为它不是Java中的合法名称.

如何使用Jackson解析器将传入的JSON名称转换为指定的Java类的字段名称?

java json jackson playframework

6
推荐指数
1
解决办法
3308
查看次数

Jenkins多分支管道并指定上游项目

我们目前使用Jenkins作业DSL在每个Git分支基础上生成大量Jenkins作业; 多分支管道插件看起来像是一种有趣的方式,可以使用Jenkinsfiles获得一流的作业生成支持,并减少我们维护的作业DSL数量.

例如,我们有libwidget-serverwidget-server开发分支项目.当libwidget-server构建完成后,触发widget-server作业(对于develop分支).这也适用于其他分支机构.

这使得Build after other projects are built在完成上游构建时触发(例如,libwidget-server导致构建widget-server).

似乎多分支管道插件缺乏Build after other projects are built设置 - 我们如何在多分支管道构建中完成上述操作?

jenkins jenkins-pipeline

6
推荐指数
2
解决办法
8534
查看次数