티스토리 뷰


발생일: 2013.01.16

문제:
어젯밤부터 간단한 노드 모듈을 만들어보고 있다.
얼마 전 배시(BASH)를 익혔던 터라, 자바스크립트 대신 배시 파일로 만들어보기로 했다.

배시 파일을 작성하다보니,
에디터에서 수정하고 쉘로 넘어가 실행하는 횟수가 많아지더라.

  1. 에디터에서 저장
  2. Alt + Tab으로 쉘로 이동
  3. 화살표 ↑ 로 최근 명령 실행
  4. 다시 Alt + Tab으로 에디터로

이런 식으로 작업하고 있는데, 아무래도 이거 넘 귀찮다.

배시 파일을 모니터링 해서,
파일이 변경되면 바로 쉘을 실행하도록 하면 테스트하기 굉장히 편할 것 같은데,
좋은 방법이 없을까?


해결책:
검색해보니, 이런 용도의 파일 모니터링 도구가 많더라.

가장 대표적인게 inotify tools 인 것 같다.

헌데, 이건 맥에서는 돌지 않는 것 같다.
그 외에도 여러 툴이 있는 모양인데 정확히 내가 원하는 툴이 없더라.

    
그래서, 그냥 짜보기로 했다.
1시간 정도 걸렸고, 꽤 쓸만한 게 나왔다.^^

원본 코드는 Gist에서 볼 수 있다.


큼직한 파일 비교 전략은 아래와 같다.

  1. `bash_monistor 대상파일` 로 모니터링을 시작한다.
  2. `ls -l 대상파일`로 모니터링한다.
  3. 파일의 상태가 변경되면, 대상파일을 실행한다.


ls를 사용해 조회하다보니, 파일 사이즈가 변경되지 않으면 바뀌지 않은 것으로 판단하지만,
그다지 큰 이슈는 아니라 아주 편하게 잘 쓰고 있다. ㅎㅎㅎ

지금은 예전에 만들어 둔 닷파일의 .functions 에 얹어두고 사용하고 있다.


덧)
나중에 폴더 단위로 적용하는 등의 확장이 필요할 때엔,
  1. `ls -lsR`로 recursive하게 조회하도록 하고,
  2. 별도의 콜백이나 실행 스크립트를 파라미터로 받으면 될 것 같다.





반응형
댓글
공지사항