Используйте inotifywait для сборки после того, как все файлы скопированы.

Файлы /.VolumeIcon.icnsи /.VolumeIcon.pngна разделе с elementary OS перезаписывают иконку темы. Вам нужно переименовать или удалить эти файлы, чтобы заставить его работать.

0
04.03.2020, 22:03
2 ответа

Вы можете позволить inotifywaitсообщить вам об одном изменении, а затем позволить rsyncзабрать остальные.

inotifywait --event modify -m -r -q "$SOURCE_PATH"  | while read filename event
do
   rsync [flags] "$SOURCE_PATH" "$TARGET_DIR"
   make all
1
28.04.2021, 23:21

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

LASTCALLED=$(date +%s)
inotifywait --event modify -m -r -q --format '%w%f' "/home/$1/src/$2"  | while read filename event
do
   cp -f "$filename" "$TARGET_DIR"
   if [[ $(($(date +%s)-$LASTCALLED)) -gt 5 ]]; then
      ( sleep 1; make all ) &
   LASTCALLED=$(date +%s)
0
28.04.2021, 23:21

Теги

Похожие вопросы