재빌드한 RTL, FCL 유니트들을 적용하기 위한 스크립트
Lazarus재빌드한 rtl, package 유니트들을 라자루스에 적용하기 위한 스크립트이다.
cygwin 상에서 실행시키면 컴파일된 유니트들을 제 위치에 옮겨준다.
역시 셸 스크립트는 어렵다... (보고 웃지 마세요!)
moveunits.sh
cygwin 상에서 실행시키면 컴파일된 유니트들을 제 위치에 옮겨준다.
역시 셸 스크립트는 어렵다... (보고 웃지 마세요!)
moveunits.sh
#!/bin/sh # # 라자루스의 유니트들을 정돈하기 위한 스크립트. # 인자값으로는 소스디렉토리, 유니트디렉토리, 그리고 작업할 유니트 타입을 받는다. # # rtl의 경우 다음과 같다. # # 1. /cygdrive/c/lazarus/fpc/2.2.2/source/ # 2. /cygdrive/c/lazarus/fpc/2.2.2/units/ # 3. i386-win32 # # fcl의 경우 다음과 같다. # # 1. /cygdrive/c/lazarus/fpc/2.2.2/source/packages/ # 2. /cygdrive/c/lazarus/fpc/2.2.2/units/ # 3. i386-win32 # 시작위치를 저장 해 둔다. StartPath="$(pwd)"; if [ $# -eq 3 ]; then echo "실행인자를 받았습니다." echo "소스 디렉토리 : "$1 echo "유니트 디렉토리: "$2 echo "유니트 타입 : "$3 # 소스 디렉토리로 이동. 디렉토리를 추출. cd $1; SubDirs=($(ls -ltr $1 | grep -v total | awk '{print $NF}')); echo "서브디렉토리 갯수 : "${#SubDirs[*]}; for Dir in ${SubDirs[*]} do # 주어진 디렉토리 밑에 /units/$3 이 존재하는지 살핀다. if [ -a $1$Dir"/units/"$3 ]; then echo $1$Dir"/units/"$3 echo " - 이동 대상입니다. "$2$3"/"$Dir" 로 옮깁니다." # 옮겨갈 유니트 디렉토리 하부의 대상을 먼저 날린다. rm $2$3"/"$Dir -rf # 없는 경우를 대비해 생성도 해 둔다. mkdir $2$3
# 디렉토리를 옮겨준다. mv $1$Dir"/units/"$3 $2$3"/"$Dir # 원본의 컴파일된 유니트는 날려준다. rm $1$Dir"/units/" -rf fi done; else echo "실행인자의 갯수를 확인하세요." fi # 시작 위치로 되돌아간다. cd $StartPath;