Skip to content

Commit

Permalink
Generate a default instance name on load
Browse files Browse the repository at this point in the history
  • Loading branch information
jemoreira committed Aug 30, 2024
1 parent 5990165 commit 883a2af
Showing 1 changed file with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#include <unistd.h>

#include <cstdio>
#include <set>
#include <string_view>
#include <string>
#include <vector>

Expand Down Expand Up @@ -271,6 +273,29 @@ Result<LoadDirectories> GenerateLoadDirectories(
return result;
}

std::vector<std::string> FillEmptyInstanceNames(
std::vector<std::string> instance_names) {
std::set<std::string_view> used;
for (const auto& name : instance_names) {
if (name.empty()) {
continue;
}
used.insert(name);
}
int index = 1;
for (auto& name : instance_names) {
if (!name.empty()) {
continue;
}
while (used.find(std::to_string(index)) != used.end()) {
++index;
}
name = std::to_string(index++);
used.insert(name);
}
return instance_names;
}

Result<CvdFlags> ParseCvdConfigs(const EnvironmentSpecification& launch,
const LoadDirectories& load_directories) {
CvdFlags flags{.launch_cvd_flags = CF_EXPECT(ParseLaunchCvdConfigs(launch)),
Expand All @@ -286,6 +311,8 @@ Result<CvdFlags> ParseCvdConfigs(const EnvironmentSpecification& launch,
for (const auto& instance: launch.instances()) {
flags.instance_names.push_back(instance.name());
}
flags.instance_names =
FillEmptyInstanceNames(std::move(flags.instance_names));
return flags;
}

Expand Down

0 comments on commit 883a2af

Please sign in to comment.