a/trunk/cforge/cforge/Package/CFORGE/Scripts/action.svn.checkout.py | b/trunk/cforge/cforge/Package/CFORGE/Scripts/action.svn.checkout.py | ||
---|---|---|---|
1 | # Example Batch: |
1 | # Example Batch: |
2 | # set WD=%~d0%~p0 |
2 | # set WD=%~d0%~p0 |
3 | # set USER=<username> |
3 | # set USER=<username> |
4 | # set PASS=<password> |
4 | # set PASS=<password> |
5 | # set URL=https://forge.codesys.com/svn/drv,gpio-mod,code/trunk/GPIOMods |
5 | # set URL=https://forge.codesys.com/svn/drv,gpio-mod,code/trunk/GPIOMods |
6 | # "C:\Program Files (x86)\3S CODESYS-V3.5.12.0\CODESYS\Common\CODESYS.exe" --profile="CODESYS V3.5 SP12" --runscript="%WD%\action.svn.checkout.py" --scriptargs="%USER% %PASS% %URL% %WD%" --noUI |
6 | # "C:\Program Files (x86)\3S CODESYS-V3.5.12.0\CODESYS\Common\CODESYS.exe" --profile="CODESYS V3.5 SP12" --runscript="%WD%\action.svn.checkout.py" --scriptargs="%URL% %USER% %PASS% %WD%" --noUI |
7 | 7 | ||
8 | import sys |
8 | import sys |
9 | import os.path |
9 | import os.path |
10 | 10 | import pysvn |
|
11 | username=sys.argv[1] |
11 | |
12 | password=sys.argv[2] |
12 | if len(sys.argv) <= 1: |
13 | print("usage: <url> [<user> <pass> <working dir>]") |
||
14 | sys.exit() |
||
15 | |||
16 | url = sys.argv[1] |
||
13 | url=sys.argv[3] |
17 | |
14 | path=sys.argv[4] |
18 | if len(sys.argv) > 3: |
19 | username = sys.argv[2] |
||
15 | parts=os.path.basename(url).split(".") |
20 | password = sys.argv[3] |
16 | filebase=(parts[-1] if parts[-1] != "" else parts[-2]) |
21 | else: |
22 | credentials = system.ui.query_credentials("Enter SVN credentials") |
||
23 | username = credentials[0] |
||
24 | password = credentials[1] |
||
25 | |||
26 | if len(sys.argv) > 4: |
||
27 | path = sys.argv[4] |
||
28 | else: |
||
29 | path = system.ui.browse_directory_dialog("Choose a checkout folder") |
||
17 | 30 | ||
18 | def set_username(req): |
31 | def set_username(req): |
19 | print_all(req) |
||
20 | req.username = username |
32 | req.username = username |
21 | req.password = password |
33 | req.password = password |
22 | req.save = True # Optional |
34 | req.save = True # Optional |
23 | 35 | ||
24 | svn.auth_username_password += set_username |
36 | svn.auth_username_password += set_username |
25 | 37 | pysvn.svn_checkout_non_codesys(username, password, url, path) |
|
26 | # checkout as a library |
38 | cdsprojects = pysvn.svn_get_directories_with_codesys_projects(username, password, url) |
27 | svn.checkout(url, path, filebase + ".library") |
39 | |
28 | 40 | for p in cdsprojects: |
|
29 | # save as a library if, we find a "Project Information" |
41 | dirbase = path + "\\" + p.rstrip('/').replace("/", "\\") |
30 | # otherwhise we asume, that this is a project file |
42 | filebase = os.path.basename(dirbase) |
31 | proj = projects.primary |
43 | dir = os.path.dirname(dirbase) |
44 | svn.checkout(url + "/" + p, dir, filebase + ".library") |
||
45 | proj = projects.primary |
||
32 | if proj.find("Project Information"): |
46 | if proj.find("Project Information"): |
33 | proj.save_as(path + '\\' + filebase + ".library") |
47 | proj.save_as(dirbase + ".library") |
34 | else: |
48 | else: |
35 | proj.save_as(path + '\\' + filebase + ".project") |
49 | proj.save_as(dirbase + ".project") |
36 | 50 | proj.close() |
|
51 | system.exit() |
||
52 | |||
53 |