mbed-scli test program

Dependencies:   Scheduler

Committer:
mimi3
Date:
Sun Feb 26 11:24:06 2017 +0000
Revision:
0:b54fab1223b5
Child:
3:60330a83318b
first

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mimi3 0:b54fab1223b5 1 #### lib.py for mbed ####
mimi3 0:b54fab1223b5 2 # v0.4
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