mbed-scli test program
makelib.py@3:60330a83318b, 2017-02-26 (annotated)
- Committer:
- mimi3
- Date:
- Sun Feb 26 20:46:49 2017 +0900
- Revision:
- 3:60330a83318b
- Parent:
- 0:b54fab1223b5
- Child:
- 4:85e9057db7a6
update: mbed-scli v0.5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mimi3 | 0:b54fab1223b5 | 1 | #### lib.py for mbed #### |
mimi3 | 3:60330a83318b | 2 | # v0.5 |
mimi3 | 0:b54fab1223b5 | 3 | # 2017/02 made by dinau |
mimi3 | 0:b54fab1223b5 | 4 | # |
mimi3 | 0:b54fab1223b5 | 5 | |
mimi3 | 0:b54fab1223b5 | 6 | # Notice: Unsupported libraries. |
mimi3 | 0:b54fab1223b5 | 7 | # These libraries must be specified in Makefile. |
mimi3 | 0:b54fab1223b5 | 8 | # mbed-os |
mimi3 | 0:b54fab1223b5 | 9 | # mbed-dev |
mimi3 | 0:b54fab1223b5 | 10 | |
mimi3 | 0:b54fab1223b5 | 11 | |
mimi3 | 0:b54fab1223b5 | 12 | # Usage: |
mimi3 | 0:b54fab1223b5 | 13 | # $ make lib |
mimi3 | 0:b54fab1223b5 | 14 | # or |
mimi3 | 0:b54fab1223b5 | 15 | # $ python makelib.py |
mimi3 | 0:b54fab1223b5 | 16 | # |
mimi3 | 0:b54fab1223b5 | 17 | |
mimi3 | 0:b54fab1223b5 | 18 | import os,sys |
mimi3 | 0:b54fab1223b5 | 19 | import commands |
mimi3 | 0:b54fab1223b5 | 20 | from urlparse import urlparse |
mimi3 | 0:b54fab1223b5 | 21 | |
mimi3 | 0:b54fab1223b5 | 22 | HG = 1 |
mimi3 | 0:b54fab1223b5 | 23 | GIT = 2 |
mimi3 | 0:b54fab1223b5 | 24 | MBEDOS = 3 |
mimi3 | 0:b54fab1223b5 | 25 | CMD_HG_CLONE = 'hg clone -q ' |
mimi3 | 0:b54fab1223b5 | 26 | CMD_GIT_CLONE = 'git clone -q ' |
mimi3 | 0:b54fab1223b5 | 27 | CMD_GIT_CHECKOUT= 'git checkout -q ' |
mimi3 | 0:b54fab1223b5 | 28 | |
mimi3 | 0:b54fab1223b5 | 29 | def hgClone(param): |
mimi3 | 0:b54fab1223b5 | 30 | cmd = CMD_HG_CLONE + param |
mimi3 | 0:b54fab1223b5 | 31 | return os.system( cmd ) |
mimi3 | 0:b54fab1223b5 | 32 | |
mimi3 | 0:b54fab1223b5 | 33 | def gitClone(param): |
mimi3 | 0:b54fab1223b5 | 34 | cmd = CMD_GIT_CLONE + param |
mimi3 | 0:b54fab1223b5 | 35 | return os.system( cmd ) |
mimi3 | 0:b54fab1223b5 | 36 | |
mimi3 | 0:b54fab1223b5 | 37 | def gitCheckout(param): |
mimi3 | 0:b54fab1223b5 | 38 | cmd = CMD_GIT_CHECKOUT + param |
mimi3 | 0:b54fab1223b5 | 39 | return os.system( cmd ) |
mimi3 | 0:b54fab1223b5 | 40 | |
mimi3 | 0:b54fab1223b5 | 41 | def getDvcs(url): |
mimi3 | 0:b54fab1223b5 | 42 | if ('developer.mbed.org' in url) or ('mbed.org' in url) or ('bitbucke.org' in url): |
mimi3 | 0:b54fab1223b5 | 43 | return HG; |
mimi3 | 0:b54fab1223b5 | 44 | elif 'mbed-os' in url: |
mimi3 | 0:b54fab1223b5 | 45 | return MBEDOS |
mimi3 | 0:b54fab1223b5 | 46 | elif 'github.com' in url: |
mimi3 | 0:b54fab1223b5 | 47 | return GIT |
mimi3 | 0:b54fab1223b5 | 48 | else: |
mimi3 | 0:b54fab1223b5 | 49 | return 0 |
mimi3 | 0:b54fab1223b5 | 50 | |
mimi3 | 0:b54fab1223b5 | 51 | def getLibs(target_dir): |
mimi3 | 0:b54fab1223b5 | 52 | savedir = os.getcwd() |
mimi3 | 0:b54fab1223b5 | 53 | os.chdir(target_dir) |
mimi3 | 0:b54fab1223b5 | 54 | liblist=[] |
mimi3 | 0:b54fab1223b5 | 55 | for fname in os.listdir('.'): |
mimi3 | 0:b54fab1223b5 | 56 | if os.path.isfile(fname): |
mimi3 | 0:b54fab1223b5 | 57 | name, ext = os.path.splitext(fname) |
mimi3 | 0:b54fab1223b5 | 58 | if ext == '.lib': |
mimi3 | 0:b54fab1223b5 | 59 | if name != 'mbed-os': |
mimi3 | 0:b54fab1223b5 | 60 | liblist.append(fname) |
mimi3 | 0:b54fab1223b5 | 61 | if len( liblist ) > 0: |
mimi3 | 0:b54fab1223b5 | 62 | #print liblist |
mimi3 | 0:b54fab1223b5 | 63 | for libfile in liblist: |
mimi3 | 0:b54fab1223b5 | 64 | subdir, ext = os.path.splitext(libfile) |
mimi3 | 0:b54fab1223b5 | 65 | print subdir |
mimi3 | 0:b54fab1223b5 | 66 | url = open(libfile).read() |
mimi3 | 0:b54fab1223b5 | 67 | print url |
mimi3 | 0:b54fab1223b5 | 68 | sys.stdout.flush() |
mimi3 | 0:b54fab1223b5 | 69 | dvcs = getDvcs(url) |
mimi3 | 0:b54fab1223b5 | 70 | if dvcs == HG: |
mimi3 | 0:b54fab1223b5 | 71 | hgClone( url ) |
mimi3 | 0:b54fab1223b5 | 72 | getLibs(subdir) |
mimi3 | 0:b54fab1223b5 | 73 | elif dvcs == MBEDOS: |
mimi3 | 0:b54fab1223b5 | 74 | # Nothing is downloaded if mbed-os lib be. |
mimi3 | 0:b54fab1223b5 | 75 | print 'mbed-os' |
mimi3 | 0:b54fab1223b5 | 76 | sys.stdout.flush() |
mimi3 | 0:b54fab1223b5 | 77 | elif dvcs == GIT: |
mimi3 | 0:b54fab1223b5 | 78 | params = url.split('#') |
mimi3 | 0:b54fab1223b5 | 79 | if len(params) == 1: |
mimi3 | 0:b54fab1223b5 | 80 | gitClone( params[0] ) |
mimi3 | 0:b54fab1223b5 | 81 | getLibs(subdir) |
mimi3 | 0:b54fab1223b5 | 82 | elif len(params) == 2: |
mimi3 | 0:b54fab1223b5 | 83 | gitClone( params[0] ) |
mimi3 | 0:b54fab1223b5 | 84 | os.chdir(subdir) |
mimi3 | 0:b54fab1223b5 | 85 | print 'cd %s' % (subdir) |
mimi3 | 0:b54fab1223b5 | 86 | sys.stdout.flush() |
mimi3 | 0:b54fab1223b5 | 87 | gitCheckout( params[1] ) |
mimi3 | 0:b54fab1223b5 | 88 | getLibs(subdir) |
mimi3 | 0:b54fab1223b5 | 89 | os.chdir(savedir) |
mimi3 | 0:b54fab1223b5 | 90 | |
mimi3 | 0:b54fab1223b5 | 91 | ################### |
mimi3 | 0:b54fab1223b5 | 92 | # main prog |
mimi3 | 0:b54fab1223b5 | 93 | ################### |
mimi3 | 0:b54fab1223b5 | 94 | if len(sys.argv) >= 2: |
mimi3 | 0:b54fab1223b5 | 95 | url = sys.argv[1] |
mimi3 | 0:b54fab1223b5 | 96 | dvcs = getDvcs( url ) |
mimi3 | 0:b54fab1223b5 | 97 | if dvcs == HG: |
mimi3 | 0:b54fab1223b5 | 98 | p = urlparse( url ) |
mimi3 | 0:b54fab1223b5 | 99 | path = p.path |
mimi3 | 0:b54fab1223b5 | 100 | if path[-1:] == '/': |
mimi3 | 0:b54fab1223b5 | 101 | path = path[:-1] |
mimi3 | 0:b54fab1223b5 | 102 | libdir = os.path.basename(path) |
mimi3 | 0:b54fab1223b5 | 103 | hgClone( url ) |
mimi3 | 0:b54fab1223b5 | 104 | getLibs(libdir) |
mimi3 | 0:b54fab1223b5 | 105 | elif dvcs == GIT: |
mimi3 | 0:b54fab1223b5 | 106 | params = url.split('#') |
mimi3 | 0:b54fab1223b5 | 107 | if len(params) == 1: |
mimi3 | 0:b54fab1223b5 | 108 | gitClone( params[0] ) |
mimi3 | 0:b54fab1223b5 | 109 | elif len(params) == 2: |
mimi3 | 0:b54fab1223b5 | 110 | gitClone( params[0] ) |
mimi3 | 0:b54fab1223b5 | 111 | os.chdir(subdir) |
mimi3 | 0:b54fab1223b5 | 112 | print 'cd %s' % (subdir) |
mimi3 | 0:b54fab1223b5 | 113 | sys.stdout.flush() |
mimi3 | 0:b54fab1223b5 | 114 | gitCheckout( params[1] ) |
mimi3 | 0:b54fab1223b5 | 115 | else: |
mimi3 | 0:b54fab1223b5 | 116 | print '--- Getting libraries ----' |
mimi3 | 0:b54fab1223b5 | 117 | getLibs('.') |
mimi3 | 0:b54fab1223b5 | 118 | print '--- end ---' |
mimi3 | 0:b54fab1223b5 | 119 | |
mimi3 | 0:b54fab1223b5 | 120 |