블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Perl 2009.10.13 14:30

[ Perl ] 스크립트에 ID/PASSWORD 를 직접 집어넣는 무서움... - Config::Pit

  저같은 스크립트키드(?) 는 Mechanize 같은 것을 자주 사용하곤 했습니다.
  예를들어서 네이버 카페에 무슨 출석을 매일 찍는다거나 그런 자잘한 스크립트가 있지요. 그때마다 왠지 찜찜해지는 게 스크립트에 적어놓은 네이버 로그인 계정을 남이 보지 않을까 하는 불안함입니다.
  그리고 예전에 Twitter Streaming 을 쓸 때는 스크립트 인자를 직접 지정해서 스크립트를 실행했는데, 이때 프로세스 리스트에 계정이 고스란히 뜨는 문제도 있었습니다.
  더군다나 예전에 Me2day API 구현할 때, 테스트 스크립트에 제 계정을 그대로 써넣은 채로 그대로 커밋해버리는 만행을 저지른 적도 있지요.
  그래서 임시방편으로 따로 설정파일을 만들어 놓고... 남이 못보게 권한을 설정하는 방법을 썼습니다.
  그런 일련의 작업을 간단하게 해주는 모듈이 있었으니 Config::Pit 입니다.

   http://search.cpan.org/perldoc?Config::Pit

  Pit 은 Ruby 쪽에서 파생된 모듈로.. 이것을 Perl 모듈화 한것입니다.
  적당한 사용예를 보자면...
  
   http://cafe.naver.com/perlstudy/45

  의 소스에 Config::Pit 을 사용할 경우...



  대략 이렇게 사용할 수 있습니다.
  우선 Pit 을 사용하기 전에 셸에서 기본적으로 사용할 $EDITOR 의 값이 지정되어 있어야 합니다. 제 경우는 vim 으로 설정되어 있습니다.
  그리고 위의 스크립트를 실행하면 우선 Pit 설정을 찾고, 없으면 에디터가 기동하고, 우선 설정값을 등록하기 위한 에디터가 뜹니다. 기본적으로 default Profile 이 생성되며, "www.naver.com" 이라는 서비스에 필요한 인자들의 값을 홈디렉토리의 .pit/default.yaml 에 생성됩니다.
 
#  .pit/profile.yaml
 --
  "profile": "default

#  ./pit/default.yaml
--
  "www.naver.com":
    "username": 'blahblah'
    "password": 'blahblah'
    "url": 'http://blah.com/'

  당연히 .pit 의 접근권한은 700 으로 다른 유저가 이 디렉토리에 접근할 수 없습니다.

  그리고  물론 default Profile 아래에 여러가지 서비스의 인자들을 등록해놓을 수 있습니다. YAML 형식으로 직접 써놓거나, 그렇지 않으면 스크립트 안의 서비스가 default Profile 에 등록되어 있지 않은 경우에는 에디터가 실행되고 다시 관련 정보를 집어넣을 수 있습니다. 이 정보는 default.yaml 에 추가로 등록되게 됩니다.

  그럼 default Profile 이외의 프로파일은 어떻게 쓸까하면..
  기본적으로 Config::Pit 모듈에 포함된 ppit 라는 커맨드가 존재합니다.

$ ppit switch <profile>

  이걸로 profile 을 바꿀 수 있으며, 바뀐 Profile 로 다시 위의 스크립트를 실행하면 새로운 Profile yaml 이 생깁니다.
  이걸로 product/devel 개발시에 설정값을 각기 지정해주고, Profile 을 스위치해버리면 간단해지겠죠.
  (WebFramework 의 경우는 Product/Devel 지정이 있지만, 저같은 경우 어지간한 자작 스크립트에서는 이런 작업들이 실로 번거롭기 그지 없었습니다)
  구글 해보면 이외에도 다양한 정보들이 있으니 참고하시기 쉬울 것이라고 생각합니다.
  혹 사용하는 데 문제가 있으시다면 댓글로... 서로 궁리해봤으면 합니다.
신고
TOTAL 474,048 TODAY 2

티스토리 툴바