launchd의 WatchPath를 사용하여 두 파일을 동기화하는 방법


0

배경 : Mac OS X plist 형식은 기본적으로 바이너리이며, git으로 추적하는 것과 같이 좋지 않습니다. 명령이있다. plutil -convert 바이너리에서 XML로 앞뒤로 변환 할 수 있지만 주어진 plist 파일을 XML로 유지하는 것은 불가능한 것처럼 보입니다.

내 아이디어는 launchd WatchPaths 기능을 사용하여 두 개의 스크립트를 설정합니다. 하나는 이진 파일을 ~/Library/Preferences 내 git repo에서 XML 파일로, 다른 하나는 XML 버전이 바뀌면 이진 파일을 다시 변환합니다. 두 컴퓨터간에 두 파일을 동기화하기 위해이 두 번째 방향이 필요합니다.

유일한 문제는이 파일을 순진하게 설정하면 바이너리 파일이 변경되는 즉시 XML 파일을 업데이트하기 때문에 끝없이 실행되지만 XML 파일이 변경되므로 결과가 이진 파일을 업데이트하는 등의 작업을 수행합니다.

이 사이클을 피할 수있는 영리한 방법이 있습니까? 내가하고 싶은 일은 파일을 마지막으로 작성한 것이 환경 설정 파일을위한 프로그램이거나 스크립트 자체 일 경우 바이너리를 XML로 변환하는 스크립트를 체크인하는 것이다. 운영. 파일에 쓸 수있는 일종의 속성이 있나요? 일반 프로그램이 파일을 쓸 때 지워지겠습니까?

답변:


0

분명히, 적어도 테스트 한 한 프로그램에 대해 xattr -w 환경 설정이 변경되었을 때 파일에 속성을두기 위해 완전히 새로운 파일을 작성하기 때문에 그 속성은 제거됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.