小编hep*_*olu的帖子

如何处理momentjs中的弃用警告

我想使用momentjs来检查无效的日期/时间字符串:

var invalid = '2017-03-18 23;00;00';
if (moment(invalid).isValid()) {
  return 'valid date'
}
Run Code Online (Sandbox Code Playgroud)

这(正确地)抛出了一个堆栈跟踪,其中包含熟悉的"弃用警告:提供的值不是公认的RFC2822或ISO格式......"

但即使我添加一个try/catch:

try {
  var invalid = '2017-03-18 23;00;00';
  if (moment(invalid).isValid()) {
    return 'valid date'
  }
catch (err) {
  throw Error ('invalid date format');
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪仍然打印.我需要做些什么才能避免打印堆栈跟踪?

我在StackOverflow上搜索了所有类似的问题,但他们都试图解决一个不同的问题(修复输入或找到正确的语法来解析输入).

我使用的是v2.18.1.

momentjs

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

全局指定键盘快捷键osx的列表?

我喜欢键盘快捷键而不是鼠标操作,所以我大量使用键盘快捷键和各种应用程序.我偶尔会遇到一种情况,我指定一个已经在不同的应用程序中使用过的键盘快捷键.当您重复使用已经使用过的组合时,并非所有应用都会显示警告.此外,由于我倾向于忘记一些较少使用的组合,所以最好找出已分配到哪里.系统偏好设置没有列出所有这些,但由于我的Mac响应它们,必须有一些方法来获取所有已分配的键盘快捷键的全局列表.有没有人知道显示它们的命令/脚本/应用程序?

macos keyboard-shortcuts

18
推荐指数
1
解决办法
4052
查看次数

在当前Ansible角色的文件部分中查找文件名

我是Ansible的新手,我正在尝试创建一个将文件复制到远程服务器的角色.每次我运行playbook时,本地文件都可以有不同的名称,但需要远程复制到同一名称,如下所示:

- name: copy file
  copy:
    src=*.txt
    dest=/path/to/fixedname.txt
Run Code Online (Sandbox Code Playgroud)

Ansible不允许使用通配符,所以当我用主要剧本中的任务编写一个简单的剧本时,我可以这样做:

- name: find the filename
    connection: local
    shell: "ls -1 files/*.txt"
    register: myfile

- name: copy file
  copy:
    src="files/{{ item }}"
    dest=/path/to/fixedname.txt
  with_items:
   - myfile.stdout_lines
Run Code Online (Sandbox Code Playgroud)

但是,当我将任务移动到角色时,第一个操作不再起作用,因为相对路径是相对于角色,而playbook在'roles'目录的根目录中执行.我可以添加角色文件目录的路径,但有更优雅的方式吗?

ansible ansible-playbook

12
推荐指数
2
解决办法
2万
查看次数

如何处理Ansible中init脚本的更改?

我对Ansible比较新,我创建了一个可以在'裸'服务器上安装Tomcat配置的playbook.我想知道如何解决能够更新init.d脚本的问题,同时避免在剧本开始时停止服务,而脚本没有变化.这是基本的剧本:

- name: stop tomcat service
  service: name=my_service state=stopped

- name: copy init.d script
  template: src=script.j2 dest=/etc/init.d/my_service

- name: do other tasks here

- name: start tomcat service
  service: name=my_service state=restarted
Run Code Online (Sandbox Code Playgroud)

即使没有任何变化,此剧本也将始终停止并启动该服务.我希望剧本做的只是停止并在有实际变化时启动服务.

我知道我可以使用处理程序(需要查看更多),但我需要在复制NEW脚本之前使用OLD init.d脚本停止服务.AFAIK处理程序在操作发生后响应任务的结果,这意味着新脚本已经复制到旧脚本上,可能会阻止服务停止和重新启动.

我该如何处理?

init ansible ansible-playbook

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