forked from Parsely/wp-parsely
-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.py
56 lines (44 loc) · 1.69 KB
/
init.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env python
'''
Initializes the wp-parsely git code repo locally and configures git to add
WordPress SVN repo.
'''
from __future__ import print_function
from subprocess import check_output, check_call, call
import os
import sys
def latest_revision(svn_repo):
revision = check_output('svn log -r 1:HEAD --limit 1 {}'.format(svn_repo), shell=True)
revision = revision.split('\n')
if len(revision) < 2:
return
revision = revision[1].split(' ')[0]
return revision
def main():
if os.path.exists('.git'):
print('Found .git folder in current directory, this script should not '
'be run inside a git repository (did you already git clone?).',
file=sys.stderr)
sys.exit(1)
plugin_name = 'wp-parsely'
svn_repo = 'http://plugins.svn.wordpress.org/{}/'.format(plugin_name)
git_repo = 'git@github.com:Parsely/wp-parsely.git'
print('Determining latest revision for {}'.format(plugin_name))
revision = latest_revision(svn_repo)
if not revision:
print('Could not find a revision number for svn repo.',
file=sys.stderr)
sys.exit(1)
check_call('git svn clone --no-minimize-url -s -{} {}'.format(revision, svn_repo),
shell=True)
print('Fetching all commits from SVN repo')
check_call('git svn fetch --log-window-size 10000', cwd=plugin_name,
shell=True)
check_call('git svn rebase', cwd=plugin_name, shell=True)
print('Initializing git')
check_call('git remote add origin {}'.format(git_repo), cwd=plugin_name,
shell=True)
print('git origin {} added'.format(git_repo))
print('Done.')
if __name__ == '__main__':
main()