http://lifeseed.tistory.com/tag/glimpse 에 있는대로만 하면 된다. 글쓴이에게 감사를..
정리하자면,
1. glimpse 설치
1.1. wget http://webglimpse.net/trial/glimpse-latest.tar.gz
1.2. tar xvfz glimpse-latest.tar.gz
1.3. ./configure && make && sudo make install
2. lxr 설치
2.1. sudo apt-get install lxr
기본 설치는 /usr/share/lxr 에 된다.
2.2. sudo vi /etc/apache2/sites-available/default 후 다음 내용 추가
2.3. sudo cp /usr/share/lxr/blurb.html /usr/share/lxr/index.html
3. lxr 환경 설정
3.1. sudo vi /usr/share/lxr/lxr.conf
3.1.1. 나의 경우 대부분 archtechture로 arm 을 쓰므로 다음처럼 고친다.
3.1.2. base url 도 localhost 대신 ip 를 사용하자.
baseurl: http://<IP ADDRESS>/lxr/http/
3.1.3. version 명으로 된 디렉토리 아래 바로 소스를 둘 것이므로 다음처럼 고친다.
3.1.4. glimpse 를 위처럼 설치했다면 경로가 다르므로 이것도 고치자.
4. 소스 코드 복사 및 DB 구축
4.1. sudo mkdir /usr/share/lxr/source/<VERSION>
4.2. sudo cp 소스 /usr/share/lxr/source/<VERSION>
4.3. cd /usr/share/lxr/source
4.4. sudo echo ‘<VERSION>’ >> ./versions
4.5. sudo echo ‘<VERSION>’ >> ./defversion
4.6. cd <VERSION>
4.7. sudo genxref ./
4.8. sudo glimpseindex -H ./ fileidx xref
4.9. sudo chmod 644 .glimpse_*
4.10. sudo chmod 644 fileidx
4.11 sudo chmod 644 xref
5. http://<IP ADDRESS>/lxr/http 접속.
추가1: 이미 http://namhyung.springnote.com/pages/3132772 에 git 사용자 설명서가 있다. 저 namhyung님이 내가 아는 우분투 쪽 김남형 님일까 ㅎㅎ
추가2: http://git-scm.com/book/ko 번역자에게 축복을…
* git
1. Git의 Repository 개념과 clone 의 개념, clone
0. crontab 허용 사용자 추가
$ sudo vi /etc/cron.allow
사용자 이름 적고 저장 후 crontab 서비스 재시작 – sudo service crontab restart
1. crontab 사용자 파일 수정
$ crontab -e
*/10 * * * * /home/dasomoli/update.sh 식으로 적고 저장
od 를 써서 hex 방식으로 출력하자. 메모리 등을 볼 때 라던가..
echo “Jeong-Seok Yang” | od -Ax -t x1
아싸! 신난다!
처음 시작은
#!/bin/sh
Perl 처음 시작은
#!/usr/bin/perl -w
argument는 $0 $1 $2 …
argument 처리는 아래 형식.
Perl에서 Argument 처리는
$ARGV[0], $ARGV[1], $ARGV[2]… $#ARGV 는 argument 개수
공백으로 나눠진 파라미터 프린트
gawk ‘{print $1}’
/로 나눠진 마지막 파라미터 프린트. cut 도 사용가능
gawk -F / ‘{print $NF}’
파일명 얻기는
basename 경로명
디렉토리명 얻기는
dirname 경로명
절대경로 얻을 때는
readlink -e 상대경로
특정 문자열 치환은
sed -e “s/문자열/문자열/g”
if는 이런 형식. 비교식은 http://www.gnu.org/s/bash/manual/bash.html#Bash-Conditional-Expressions 참고
elif
명령;
else
명령;
fi
for each 는 이런 형식
case는 위의 argument 처리 참고.
명령의 결과 저장은 `명령`
변수의 값으로 치환한 문자열은 “$변수 포함 문자열”
그냥 그대로 문자열은 ‘문자열’
끝에만 자를 땐
tail -n 숫자
앞에만 자를 땐
head -n 숫자
문자열 있는 줄만 얻고 싶을 땐
grep “문자열”
정규식으로 찾은 문자열 포함된 줄만 얻고 싶을 땐
grep -P “^문자열[0-9a-zA-Z-_/]*$”
basic http 인증은 https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients 참고
html 얻어올 때는
curl “주소”
원래 나한테 좀 맞지 않던 카메라 개발에서 벗어나서 요즘 좀 재밌는 걸 하고 있다.
개발 업무를 살짝 벗어나서 SCM 업무를 하고 있는데, 내가 옳다고 생각하는 방향으로 부서 전체를 바꾸고 있어서 좀 재미나다. 회사 전체를 바꿀 수 있으면 더 재미날 것 같지만, 그건 이후의 일이고..
아무튼 요약하면 구글에서 NexusS 개발을 하면서 썼던 git + gerrit 시스템을 적용하고, 여기에 코딩룰 자동 오류 보고 + 코딩 룰 자동 오류 수정 + 수정본 자동 업로드를 구축 중이다. 여러 가지 것들을 조합해서 만들어 내는 개발환경 개선 작업은 신난다.
1. 기존의 불편한 Centeralized VCS 툴을 벗어나 DVCS를 사용해 여러 브랜치의 Integration 작업의 어려움을 줄이고, 같은 패치를 여러 곳에 적용하기 쉽게 만들고,
2. 코드 리뷰 시스템을 통해 좋은 코드를 함께 말할 수 있는 장을 만들고, 코드 개선을 양지로 끌어내고, 코딩 룰에 대해 생각하게 하고, 코드의 구조에 대해 생각하게 하고, 후배 개발자에게 선배 개발자의 지식을 전달할 수 있는 체계를 만들고,
3. 코딩 룰의 자동 체크를 통해 리뷰어의 노력을 덜 들이게 하고, 개발자의 모든 코드의 코딩룰을 검사하도록 하고, 수정하도록 요구하며,
4. 구조 개선 같은 복잡한 것까지는 아니더라도 체크한 패치가 오류가 있으면 간단한 코딩 룰 등은 자동으로 수정해서 바로 업로드 하여 개발자들의 코딩 룰 등 간단한 수정에 드는 노력을 줄인다.
여기에 기존 시스템(빌드, 배포 등)과의 호환성 유지를 위한 작업까지.. 아직은 사내 모든 부서가 내가 구축하는 것을 따르고 있지는 않기 때문에..
개발 생산성 향상이라는게 말만큼 거창한게 아니다. 개선에 개선을 거듭해 쓸데없는 일을 줄이고 줄여, 더이상 뺄 게 없는 프로세스를 만들어 내는 거다.
위에 것이 어떻게 가능하냐. git + gerrit + jenkins + Linux kernel의 checkpatch.pl, Linux kernel의 cleanpatch + Linux shell의 여러 utility + 손수 제작 스크립트(bash, perl 등)를 조합하면 된다.
딴데도 이렇게 하고 있는 곳이 있을까? 내맘대로 세계 최초라 주장하련다. ㅋㅋㅋㅋ
drivers 아래의 mod 755 파일을 모두 644로 바꾸고 싶다면 다음과 같이 하면 된다.
find drivers/ -perm 755 -type f -print | xargs chmod 644
간단히 말하면 dirname <인자> 하면 마지막 / 뒷부분을 날린 결과가 나오고,
basename <인자> 하면 / 뒷부분이 나온다.
http://stackoverflow.com/questions/284662/how-do-you-normalize-a-file-path-in-bash