Skip to content

Commit 78a8f39

Browse files
committed
made dependency management work
1 parent ce7810b commit 78a8f39

File tree

2 files changed

+49
-26
lines changed

2 files changed

+49
-26
lines changed

bin/esrocos_create_project

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import yaml
66
import sys
77
import subprocess
88
from subprocess import call
9-
from os import walk
10-
from shutil import copyfile
119

1210
ESROCOS_YAML = "esrocos.yml"
1311
DEFAULT_PROJECT_NAME = "esrocos_project"

bin/esrocos_fetch_dependencies

Lines changed: 49 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@ import sys
44
import os
55
import xml.etree.cElementTree as ET
66
from subprocess import call
7+
from os import walk
8+
from shutil import copyfile
9+
import re
710

811
ESROCOS_YAML = "esrocos.yml"
12+
ROOT_DIR = os.environ['AUTOPROJ_CURRENT_ROOT']
913

1014
project_name = ""
1115
SRC_DIR = ""
@@ -73,8 +77,8 @@ print "DONE"
7377
# ADVERTISE LOCAL DEPS IN LOCAL.AUTOBUILD
7478
# ADVERTISE REMOTE DEPS IN UNIVERSE PACKAGE SET
7579

76-
localpath = os.environ['AUTOPROJ_CURRENT_ROOT']+"/autoproj/"+project_name+".autobuild"
77-
remotepath = os.environ['AUTOPROJ_CURRENT_ROOT']+"/autoproj/remotes/esrocos.universe/"+project_name+".autobuild"
80+
localpath = ROOT_DIR+"/autoproj/"+project_name+".autobuild"
81+
remotepath = ROOT_DIR+"/autoproj/remotes/esrocos.universe/"+project_name+".autobuild"
7882

7983
try:
8084
with open(localpath, 'w') as localout, open(remotepath, 'w') as remoteout:
@@ -103,7 +107,7 @@ print "trying to open existing source.yml"
103107

104108
#open universe source.yml
105109

106-
path = os.environ['AUTOPROJ_CURRENT_ROOT']+"/autoproj/remotes/esrocos.universe/source.yml"
110+
path = ROOT_DIR+"/autoproj/remotes/esrocos.universe/source.yml"
107111
data = {}
108112

109113
try:
@@ -148,11 +152,15 @@ except IOError as err:
148152
sys.exit()
149153

150154
# AUP
155+
print "calling aup...\t",
156+
sys.stdout.flush()
151157

152158
aup_arguments = ["autoproj","update"]
153159

154160
call(aup_arguments)
155161

162+
print "DONE"
163+
156164
# REMOVE OLD FILES AND RESET CHANGES
157165

158166
#print "clean tmp files...",
@@ -167,51 +175,69 @@ call(aup_arguments)
167175

168176
#print "DONE"
169177

178+
# COPY ASN FILES FROM SHARED DIR TO LOCAL INSTALL DIR
170179

171-
sys.exit()
180+
# create hash map of packages to copy from
172181

173-
# COPY ASN
182+
deps_map = {}
174183

175-
print "installing shared types...\t",
184+
for dep in pkg_deps:
185+
for key in dep:
186+
if not dep[key]:
187+
try:
188+
match = key.rsplit('/',1)[-1]
189+
deps_map[match] = True
190+
except AttributeError:
191+
print "no match"
192+
193+
# walk directories and copy files
194+
print "locally installing shared types...\t",
176195
sys.stdout.flush()
177196

178-
SHARED_DIR = "../install/types/"
197+
SHARED_TYPES_DIR = ROOT_DIR+"/install/types/"
198+
199+
# walk through each directory in the installed types
200+
dirs = []
179201

180-
aadl_files = []
181-
d = []
182-
183-
for (dirpath, dirnames, filenames) in walk(SHARED_DIR):
184-
d.extend(dirnames)
202+
for (dirpath, dirnames, filenames) in walk(SHARED_TYPES_DIR):
203+
dirs.extend(dirnames)
185204
break
186205

187-
for dirname in d:
188-
f = []
206+
for dirname in dirs:
189207

208+
# proceed only if dir is the name of a dependency
209+
try:
210+
if not deps_map[dirname]:
211+
continue
212+
except KeyError:
213+
continue
214+
215+
# create install dir for dependency
190216
try:
191217
os.makedirs(INSTALL_DIR+dirname+"/asn")
192218
except OSError as err:
193219
if not err.errno == 17:
194220
raise err
195221

196-
for (dirpath, dirnames, filenames) in walk(SHARED_DIR):
197-
f.extend(filenames)
198-
199-
for filename in f:
222+
# walk files in directory
223+
224+
for (dirpath, dirnames, filenames) in walk(SHARED_TYPES_DIR+"/"+dirname+"/asn"):
225+
for filename in filenames:
200226
try:
201-
# print filename
202-
# print "from: "+SHARED_DIR+dirname+"/asn/"+filename
203-
# print "to: "+INSTALL_DIR+dirname+"/asn/"+filename
204-
copyfile(SHARED_DIR+dirname+"/asn/"+filename,INSTALL_DIR+dirname+"/asn/"+filename)
227+
copyfile(dirpath+"/"+filename,INSTALL_DIR+dirname+"/asn/"+filename)
205228
except IOError as err:
206229
raise err
207230

231+
print "DONE"
232+
233+
# COMPILE ASN AND ACN TO MONOLITHIC AADL FILE
234+
208235
#getting asn and acn files from folder
209236

210237
asn_acn_files = []
211238
asn_filenames = []
212239

213240
for (dirpath, dirnames, filenames) in walk(SRC_DIR):
214-
f.extend(filenames)
215241
for filename in filenames:
216242
if filename.endswith(".asn") or filename.endswith(".acn"):
217243
if not filename in asn_filenames:
@@ -221,7 +247,6 @@ for (dirpath, dirnames, filenames) in walk(SRC_DIR):
221247
print "duplicate: "+filename
222248

223249
for (dirpath, dirnames, filenames) in walk(INSTALL_DIR):
224-
f.extend(filenames)
225250
for filename in filenames:
226251
if filename.endswith(".asn") or filename.endswith(".acn"):
227252
if not filename in asn_filenames:

0 commit comments

Comments
 (0)