[modular][sessionctl] Look for the component-version of basemgr.

Also:
* Print a nicer error when we can't find a basemgr instance in the first
place.

TEST=manual
MF-158 #done
MF-158 #comment [modular][sessionctl] Look for the component-version of basemgr.

Change-Id: I52aaa91fe6e6aa8f25dc7af588f7d1b1c4e502e4
diff --git a/bin/sessionctl/main.cc b/bin/sessionctl/main.cc
index 4ee5456..ffa5a3d 100644
--- a/bin/sessionctl/main.cc
+++ b/bin/sessionctl/main.cc
@@ -148,9 +148,12 @@
   auto request = basemgr.NewRequest().TakeChannel();
 
   std::vector<DebugService> services;
-  FindDebugServicesForPath("/hub/c/basemgr/*/out/debug/basemgr", "basemgr",
-                           &services);
-  // There should only be one basemgr
+  FindDebugServicesForPath("/hub/c/basemgr.cmx/*/out/debug/basemgr",
+                           "basemgr.cmx", &services);
+
+  if (services.empty()) {
+    return nullptr;
+  }
   FXL_CHECK(services.size() == 1);
 
   std::string service_path = services[0].service_path;
@@ -172,8 +175,14 @@
 
   const modular::Logger logger(
       command_line.HasOption(modular::kJsonOutFlagString));
-  auto sessions = FindAllSessions();
 
+  auto basemgr = ConnectToBasemgr();
+  if (!basemgr) {
+    logger.LogError(cmd, "Could not find a running basemgr. Is it running?");
+    return 1;
+  }
+
+  auto sessions = FindAllSessions();
   if (sessions.empty()) {
     logger.LogError(
         cmd, "Could not find a running sessionmgr. Is the user logged in?");
@@ -189,8 +198,6 @@
     std::cout << std::endl;
   }
 
-  auto basemgr = ConnectToBasemgr();
-
   // To get a PuppetMaster service for a session, use the following code:
   PuppetMasterPtr puppet_master = ConnectToPuppetMaster(sessions[0]);