git - применить коммит в другой ветке к рабочей копии

Вот еще один вариант.

Мне просто нужно было написать свой собственный, чтобы смотреть и запускать тесты в контейнере Docker. Решение Jan намного более изящно, но FileSystemWatcher в настоящее время разбит на контейнеры Docker. Мой подход похож на Василия, но гораздо более ленивый, доверяя времени записи файловой системы.

Вот функция, которая мне нужна, которая запускает командный блок каждый раз, когда файл изменяется.

function watch($command, $file) {
    $this_time = (get-item $file).LastWriteTime
    $last_time = $this_time
    while($true) {
        if ($last_time -ne $this_time) {
            $last_time = $this_time
            invoke-command $command
        }
        sleep 1
        $this_time = (get-item $file).LastWriteTime
    }
}

Вот один, который ждет, пока файл не изменится, запустит блок, а затем выйдет.

function waitfor($command, $file) {
    $this_time = (get-item $file).LastWriteTime
    $last_time = $this_time
    while($last_time -eq $this_time) {
        sleep 1
        $this_time = (get-item $file).LastWriteTime
    }
    invoke-command $command
}
28
задан Community 23 May 2017 в 12:02
поделиться