@@ -168,85 +168,17 @@ def ffx_daemon_log_path(self):
168168    def  ffx_isolate_dir (self ):
169169        return  os .path .join (self .tmp_dir (), "ffx_isolate" )
170170
171-     def  ffx_home_dir (self ):
172-         return  os .path .join (self .ffx_isolate_dir (), "user-home" )
171+     def  home_dir (self ):
172+         return  os .path .join (self .tmp_dir (), "user-home" )
173173
174-     def  ffx_tmp_dir (self ):
175-         return  os .path .join (self .ffx_isolate_dir (), "tmp" )
176- 
177-     def  ffx_log_dir (self ):
178-         return  os .path .join (self .ffx_isolate_dir (), "log" )
179- 
180-     def  ffx_user_config_dir (self ):
181-         return  os .path .join (self .ffx_xdg_config_home (), "Fuchsia" , "ffx" , "config" )
182- 
183-     def  ffx_user_config_path (self ):
184-         return  os .path .join (self .ffx_user_config_dir (), "config.json" )
185- 
186-     def  ffx_xdg_config_home (self ):
187-         if  platform .system () ==  "Darwin" :
188-             return  os .path .join (self .ffx_home_dir (), "Library" , "Preferences" )
189-         return  os .path .join (self .ffx_home_dir (), ".local" , "share" )
190- 
191-     def  ffx_ascendd_path (self ):
192-         return  os .path .join (self .ffx_tmp_dir (), "ascendd" )
193174
194175    def  start_ffx_isolation (self ):
195176        # Most of this is translated directly from ffx's isolate library 
196177        os .mkdir (self .ffx_isolate_dir ())
197-         os .mkdir (self .ffx_home_dir ())
198-         os .mkdir (self .ffx_tmp_dir ())
199-         os .mkdir (self .ffx_log_dir ())
200- 
201-         fuchsia_dir  =  os .path .join (self .ffx_home_dir (), ".fuchsia" )
202-         os .mkdir (fuchsia_dir )
203- 
204-         fuchsia_debug_dir  =  os .path .join (fuchsia_dir , "debug" )
205-         os .mkdir (fuchsia_debug_dir )
206- 
207-         metrics_dir  =  os .path .join (fuchsia_dir , "metrics" )
208-         os .mkdir (metrics_dir )
178+         os .mkdir (self .home_dir ())
209179
210-         analytics_path  =  os .path .join (metrics_dir , "analytics-status" )
211-         with  open (analytics_path , "w" , encoding = "utf-8" ) as  analytics_file :
212-             print ("0" , file = analytics_file )
213- 
214-         ffx_path  =  os .path .join (metrics_dir , "ffx" )
215-         with  open (ffx_path , "w" , encoding = "utf-8" ) as  ffx_file :
216-             print ("1" , file = ffx_file )
217- 
218-         os .makedirs (self .ffx_user_config_dir ())
219- 
220-         with  open (
221-             self .ffx_user_config_path (), "w" , encoding = "utf-8" 
222-         ) as  config_json_file :
223-             user_config_for_test  =  {
224-                 "log" : {
225-                     "enabled" : True ,
226-                     "dir" : self .ffx_log_dir (),
227-                 },
228-                 "overnet" : {
229-                     "socket" : self .ffx_ascendd_path (),
230-                 },
231-                 "ssh" : {
232-                     "pub" : self .ssh_authfile_path (),
233-                     "priv" : self .ssh_keyfile_path (),
234-                 },
235-                 "test" : {
236-                     "is_isolated" : True ,
237-                     "experimental_structured_output" : True ,
238-                 },
239-             }
240-             print (json .dumps (user_config_for_test ), file = config_json_file )
241- 
242-         ffx_env_path  =  os .path .join (self .ffx_user_config_dir (), ".ffx_env" )
243-         with  open (ffx_env_path , "w" , encoding = "utf-8" ) as  ffx_env_file :
244-             ffx_env_config_for_test  =  {
245-                 "user" : self .ffx_user_config_path (),
246-                 "build" : None ,
247-                 "global" : None ,
248-             }
249-             print (json .dumps (ffx_env_config_for_test ), file = ffx_env_file )
180+         ffx_path  =  self .tool_path ("ffx" )
181+         ffx_env  =  self .ffx_cmd_env ()
250182
251183        # Start ffx daemon 
252184        # We want this to be a long-running process that persists after the script finishes 
@@ -256,38 +188,65 @@ def start_ffx_isolation(self):
256188        ) as  ffx_daemon_log_file :
257189            subprocess .Popen (
258190                [
259-                     self .tool_path ("ffx" ),
260-                     "--config" ,
261-                     self .ffx_user_config_path (),
191+                     ffx_path ,
262192                    "daemon" ,
263193                    "start" ,
264194                ],
265-                 env = self . ffx_cmd_env () ,
195+                 env = ffx_env ,
266196                stdout = ffx_daemon_log_file ,
267197                stderr = ffx_daemon_log_file ,
268198            )
269199
200+         # Disable analytics 
201+         subprocess .check_call (
202+             [
203+                 ffx_path ,
204+                 "config" ,
205+                 "analytics" ,
206+                 "disable" ,
207+             ],
208+             env = ffx_env ,
209+             stdout = self .subprocess_output (),
210+             stderr = self .subprocess_output (),
211+         )
212+ 
213+         # Set configs 
214+         configs  =  {
215+             "log.enabled" : "true" ,
216+             "ssh.pub" : self .ssh_authfile_path (),
217+             "ssh.priv" : self .ssh_keyfile_path (),
218+             "test.is_isolated" : "true" ,
219+             "test.experimental_structured_output" : "true" ,
220+         }
221+         for  key , value  in  configs .items ():
222+             subprocess .check_call (
223+                 [
224+                     self .tool_path ("ffx" ),
225+                     "config" ,
226+                     "set" ,
227+                     key ,
228+                     value ,
229+                 ],
230+                 env = self .ffx_cmd_env (),
231+                 stdout = self .subprocess_output (),
232+                 stderr = self .subprocess_output (),
233+             )
234+ 
270235    def  ffx_cmd_env (self ):
271-         result  =  {
272-             "HOME" : self .ffx_home_dir (),
273-             "XDG_CONFIG_HOME" : self .ffx_xdg_config_home (),
274-             "ASCENDD" : self .ffx_ascendd_path (),
275-             "FUCHSIA_SSH_KEY" : self .ssh_keyfile_path (),
236+         return  {
237+             "HOME" : self .home_dir (),
238+             "FFX_ISOLATE_DIR" : self .ffx_isolate_dir (),
276239            # We want to use our own specified temp directory 
277240            "TMP" : self .tmp_dir (),
278241            "TEMP" : self .tmp_dir (),
279242            "TMPDIR" : self .tmp_dir (),
280243            "TEMPDIR" : self .tmp_dir (),
281244        }
282245
283-         return  result 
284- 
285246    def  stop_ffx_isolation (self ):
286247        subprocess .check_call (
287248            [
288249                self .tool_path ("ffx" ),
289-                 "--config" ,
290-                 self .ffx_user_config_path (),
291250                "daemon" ,
292251                "stop" ,
293252            ],
@@ -709,8 +668,6 @@ def log(msg):
709668            subprocess .run (
710669                [
711670                    self .tool_path ("ffx" ),
712-                     "--config" ,
713-                     self .ffx_user_config_path (),
714671                    "test" ,
715672                    "run" ,
716673                    f"fuchsia-pkg://{ self .TEST_REPO_NAME } { package_name } { package_name }  ,
@@ -849,8 +806,6 @@ def delete_tmp(self):
849806    def  debug (self , args ):
850807        command  =  [
851808            self .tool_path ("ffx" ),
852-             "--config" ,
853-             self .ffx_user_config_path (),
854809            "debug" ,
855810            "connect" ,
856811            "--" ,
@@ -948,8 +903,6 @@ def syslog(self, args):
948903        subprocess .run (
949904            [
950905                self .tool_path ("ffx" ),
951-                 "--config" ,
952-                 self .ffx_user_config_path (),
953906                "log" ,
954907                "--since" ,
955908                "now" ,
0 commit comments