]> git.wh0rd.org - home.git/blob - .bin/cros-repo
setup e-mail after we init the repo
[home.git] / .bin / cros-repo
1 #!/bin/sh
2
3 usage() {
4 cat <<-EOF
5 Usage: repo-cros [options]
6
7 Options:
8 int switch to internal tree
9 ext switch to external tree
10 -b <branch> switch branches (use "master" to get to ToT)
11 -r <path> patch to reference repo (e.g. ~/chromiumos/)
12
13 Operates on the repo in ${PWD}
14 EOF
15 exit ${1:-1}
16 }
17
18 v() {
19 printf '%s\n%s\n' "${PWD}" "$*"
20 "$@"
21 }
22
23 email="vapier@chromium.org"
24 REF=
25 BRANCH=
26 MANIFEST=
27 REPO_URL=
28 while [[ $# -gt 0 ]] ; do
29 case $1 in
30 int)
31 MANIFEST='ssh://gerrit-int.chromium.org:29419/chromeos/manifest-internal.git'
32 REPO_URL='http://git.chromium.org/external/repo.git'
33 ;;
34 ext)
35 MANIFEST='http://git.chromium.org/chromiumos/manifest.git'
36 REPO_URL='http://git.chromium.org/external/repo.git'
37 ;;
38 -b)
39 BRANCH=$2
40 shift
41 ;;
42 -r)
43 REF=$(realpath "$2")
44 shift
45 ;;
46 *)
47 usage
48 ;;
49 esac
50 shift
51 done
52
53 v repo init \
54 ${MANIFEST:+-u "${MANIFEST}"} \
55 ${REPO_URL:+--repo-url="${REPO_URL}"} \
56 ${REF:+--reference "${REF}"} \
57 ${BRANCH:+-b "${BRANCH}"}
58
59 rdir=$(realpath "`pwd`")
60 while [[ ! -d ${rdir}/.repo ]] ; do
61 rdir=${rdir%/*}
62 [[ ${rdir:-/} == "/" ]] && break
63 done
64 rdir+="/.repo"
65 if [[ -d ${rdir} ]] ; then
66 gcfg() { git --git-dir="$1" config user.email "${@:2}" ; }
67 if [[ $(gcfg "${rdir}/manifests.git") != "${email}" ]] ; then
68 echo "${rdir}: setting e-mail to ${email}"
69 find "${rdir}" -type d -name '*.git' | \
70 while read d ; do
71 gcfg "${d}" ${email}
72 done
73 fi
74 fi
75
76 exit 0