scripts/sync_repos
author Tomas Zeman <tomas@functionals.cz>
Tue, 15 Dec 2020 09:22:21 +0100
changeset 60 4267602e8494
parent 24 48bc2f12bcc5
permissions -rwxr-xr-x
fs2json: directory structure -> json object converter. E.g. to be used instead of erica / py-Couchapp (interaction with couchdb is left to the user).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
#!/bin/sh
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
# Finds all repositories in $HOME and pulls/pushes to remote repos based on
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
# destination (optional)
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
#
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
# Usage: sync_repos [destination]
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
#
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
iterate() {
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
	# $1 destination
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
	dst=$1
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
	find $HOME/  -xdev -maxdepth 5 -name .hg | \
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
	sed -e 's{.hg${{'| \
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
	while read repo; do 
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
		echo "==> Sync repo: $repo"
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
		hg pull -v  -u --cwd $repo $dst;
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
		hg push -v  --cwd $repo $dst;
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
	done
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
}
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
dst=$1
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
48bc2f12bcc5 scripts/sync_repos
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
iterate $dst