小编mad*_*oet的帖子

在bash中的无限循环期间禁用用户输入

我有这个bash脚本,它基本上启动了带有进度指示器的web和selenium服务器.由于启动selenium服务器需要一些时间,因此我在无限循环中检查状态.

问题是,在等待它开始的时候我按下键意外地显示在屏幕上,如果循环结束(超时),它也会在命令提示符中显示.

我想在循环内部禁用所有用户输入(当然除了控制键):

start_selenium() {
    echo -n "Starting selenium server"
    java -jar ${selenium_jar} &> $selenium_log &

    # wait for selenium server to spin up! (add -v for verbose output)
    i=0
    while ! nc -z localhost 4444; do
        sleep 1
        echo -n "."
        ((i++))
        if [ $i -gt 20 ]; then
            echo
            echo -e $bg_red$bold"Selenium server connection timed out"$reset
            exit 1
        fi
    done
} 
Run Code Online (Sandbox Code Playgroud)

bash selenium

7
推荐指数
2
解决办法
3460
查看次数

取消归档后出现Ansible幂等问题,然后修改提取的文件

在一个烦人的角色中,我们提取了一个tar.gz文件,然后将提取的文件之一替换为另一个文件,以解决某些问题。

问题是当我们再次运行ansible时,由于目录内容已更改,因此ansible再次提取了归档文件,并且自然地标记了任务已更改,并且也按预期再次替换了文件。

因此,每次运行剧本时,我们都有两个“更改”。

我应该如何处理此问题以保持操作幂等?

ansible ansible-2.x

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

在对 Laravel 应用程序进行功能测试时跳过授权

在测试控制器时是否有内置方法可以完全跳过授权?

示例控制器:

public function changePassword(Request $request, LdapInterface $ldap)
{
    $this->authorize('change-password');

    $this->validate($request, [
        'pass' => 'min:8|confirmed|weakpass|required', 
    ]);

    $success = $ldap->updatePassword($request->get('pass'));

    $message = $success ?
        'Your e-mail password has been successfully changed' :
        'An error occured while trying to change your alumni e-mail password.';

    return response()->json(['message' => $message]);
}
Run Code Online (Sandbox Code Playgroud)

我想跳过change-password规则,它是在里面定义的AuthServiceProvider

public function boot(GateContract $gate)
{
    $gate->define('change-password', function ($user) {
        // Some complex logic here
    });
}
Run Code Online (Sandbox Code Playgroud)

我不想添加smt。就像if (env('APP_ENV') == 'testing') return;在代码里面一样。

php phpunit functional-testing laravel-5

2
推荐指数
3
解决办法
5878
查看次数