@@ -49,7 +49,7 @@ void SaveFile(ZipWriter& writer, const std::string& zip_path,
4949 }
5050}
5151
52- Result< void > AddNetsimdLogs (ZipWriter& writer) {
52+ void AddNetsimdLogs (ZipWriter& writer) {
5353 // The temp directory name depends on whether the `USER` environment variable
5454 // is defined.
5555 // https://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:tools/netsim/rust/common/src/system/mod.rs;l=37-57;drc=360ddb57df49472a40275b125bb56af2a65395c7
@@ -58,14 +58,17 @@ Result<void> AddNetsimdLogs(ZipWriter& writer) {
5858 : fmt::format (" /tmp/android-{}/netsimd" , user);
5959 if (!DirectoryExists (dir)) {
6060 LOG (INFO) << " netsimd logs directory: `" << dir << " ` does not exist." ;
61- return {} ;
61+ return ;
6262 }
63- auto names =
64- CF_EXPECTF (DirectoryContents (dir), " Cannot read from {} directory." , dir);
65- for (const auto & name : names) {
63+ auto names = DirectoryContents (dir);
64+ if (!names.ok ()) {
65+ LOG (ERROR) << " Cannot read from netsimd directory `" << dir
66+ << " `: " << names.error ().FormatForEnv (/* color = */ false );
67+ return ;
68+ }
69+ for (const auto & name : names.value ()) {
6670 SaveFile (writer, " netsimd/" + name, dir + " /" + name);
6771 }
68- return {};
6972}
7073
7174Result<void > CvdHostBugreportMain (int argc, char ** argv) {
@@ -104,32 +107,48 @@ Result<void> CvdHostBugreportMain(int argc, char** argv) {
104107 save (" cuttlefish_config.json" );
105108 save (" disk_config.txt" );
106109 if (DirectoryExists (instance.PerInstancePath (" logs" ))) {
107- auto logs = CF_EXPECT (DirectoryContents (instance.PerInstancePath (" logs" )),
108- " Cannot read from logs directory." );
109- for (const auto & log : logs) {
110- save (" logs/" + log);
110+ auto result = DirectoryContents (instance.PerInstancePath (" logs" ));
111+ if (result.ok ()) {
112+ for (const auto & log : result.value ()) {
113+ save (" logs/" + log);
114+ }
115+ } else {
116+ LOG (ERROR) << " Cannot read from logs directory: "
117+ << result.error ().FormatForEnv (/* color = */ false );
111118 }
112119 } else {
113120 save (" kernel.log" );
114121 save (" launcher.log" );
115122 save (" logcat" );
116123 save (" metrics.log" );
117124 }
118- auto tombstones =
119- CF_EXPECT (DirectoryContents (instance.PerInstancePath (" tombstones" )),
120- " Cannot read from tombstones directory." );
121- for (const auto & tombstone : tombstones) {
122- save (" tombstones/" + tombstone);
125+
126+ {
127+ auto result = DirectoryContents (instance.PerInstancePath (" tombstones" ));
128+ if (result.ok ()) {
129+ for (const auto & tombstone : result.value ()) {
130+ save (" tombstones/" + tombstone);
131+ }
132+ } else {
133+ LOG (ERROR) << " Cannot read from tombstones directory: "
134+ << result.error ().FormatForEnv (/* color = */ false );
135+ }
123136 }
124- auto recordings =
125- CF_EXPECT (DirectoryContents (instance.PerInstancePath (" recording" )),
126- " Cannot read from recording directory." );
127- for (const auto & recording : recordings) {
128- save (" recording/" + recording);
137+
138+ {
139+ auto result = DirectoryContents (instance.PerInstancePath (" recording" ));
140+ if (result.ok ()) {
141+ for (const auto & recording : result.value ()) {
142+ save (" recording/" + recording);
143+ }
144+ } else {
145+ LOG (ERROR) << " Cannot read from recording directory: "
146+ << result.error ().FormatForEnv (/* color = */ false );
147+ }
129148 }
130149 }
131150
132- CF_EXPECT ( AddNetsimdLogs (writer) );
151+ AddNetsimdLogs (writer);
133152
134153 SaveFile (writer, " cvd_host_bugreport.log" , log_filename);
135154
0 commit comments