[Redmine] 저장소를 프로젝트별로 자동 생성하게 하기

레드마인의 마음에 드는 점이 여러 프로젝트를 동시에 진행할 수 있다는 점입니다. 그리고 무엇보다도 프로젝트별로 소스 저장소(SCM)를 정의할 수 있습니다. 하지만 좀 더 편하기 위해 프로젝트를 생성하면 자동으로 저장소가 생성되면 좋겠다고 생각했는데 보기 좋게 이미 기능이 제공되고 있군요. 설정을 해보도록 하겠습니다.

1. 우선 관리자로 레드마인에 접속하여 설정에 들어갑니다.

2. 아래의 이미지를 참고하여 인증탭의 REST 웹서비스 활성화에 체크합니다.
사용자 삽입 이미지
3. 아래의 이미지를 참고하셔서 저장소의 API키값을 복사해 둡니다. 없다면 생성하시길…
사용자 삽입 이미지
4. 다음의 값을 crontab에 등록하도록 합시다.
[code]*/5 * * * * root ruby /home/redmine/extra/svn/reposman.rb –redmine theeye.pe.kr
–svn-dir /svn –url http://theeye.pe.kr/svn –owner nobody
–key abcdefghijklmnopqrstu[/code]
reposman.rb라는 스크립트를 사용하여 매번 새로운 프로젝트가 생겼는지 확인하여 저장소를 자동생성합니다. 5분에 한번씩 체크합니다. 옵션에 대한 설명을 다음과 같습니다.

–redmine : 레드마인에 접속하기 위한 주소를 적습니다.
–svn-dir : SVN의 경우, 저장소 루트의 경로를 적습니다.
–url : SVN에 접속하기 위한 주소입니다. 보시다시피 아파치에 mod_dav_svn을 이용해 연동하셔야 합니다.
–owner : 저장소를 관리하기 위한 권한설정입니다. 아파치 실행권한에 맞추시면 됩니다.
–key : 아까 3번에서 복제해둔 API키 값입니다.

5. 끝
이제 프로젝트를 생성하게 되면 5분이내로 저장소가 자동으로 생성되며 레드마인의 프로젝트 내에서 보이지 않던 저장소 탭이 생기게 됩니다.

[Linux/Floating Point] Shell Script로 부동소수점 연산하기

리눅스 쉘스크립트 프로그래밍은 간단하면서도 매우 강력한 능력을 발휘하는 언어(?)입니다. 여기서 부동소수점 연산을 시도해 볼려고 하면 다음과 같은 문제들이 있습니다.

[code]> i=1+2
> echo $i
1+2[/code]
생각했던데로 나오지 않는군요. 하지만 쉘에서 사용할 수 있는 expr이라는 명령이 있습니다.

[code]> i=`expr 1 + 2`
> echo $i
3[/code]
여기서 expr을 사용할때 숫자와 연산자 사이에 공백이 들어간다는것을 유의합시다. 연산이 정상적으로 이루어짐을 알 수 있습니다.

[code]> i=`expr 1.2 + 2.5`
expr: non-numeric argument[/code]
하지만 부동소수점 연산이 안되는군요. 큰일입니다. 어떻게 방법이 없을까요.

[code]> i=`echo “1.2 + 2.5″|bc`
> echo $i
3.7[/code]
bc를 이용해서 해결해보았습니다.

[code]> i=`echo “1.22 2.51″|awk ‘{printf “%.2f”, $1 + $2}’`
> echo $i
3.73[/code]
이번엔 자체적으로 부동소수점 연산을 지원하는 awk를 이용하여 해결해 보았습니다. 출력포맷의 %.2f를 사용하여 소수점 이하 2번째 자리까지 사용하여 반올림 하도록 하였습니다.