diff --git a/src/main/java/gay/ampflower/maven/Config.java b/src/main/java/gay/ampflower/maven/Config.java index 114bfb3..127e4c3 100644 --- a/src/main/java/gay/ampflower/maven/Config.java +++ b/src/main/java/gay/ampflower/maven/Config.java @@ -194,6 +194,21 @@ public void createHost(String host, Path path) { hosts.put(host, new Host(path)); } + public boolean renameHost(String host, String name) { + if (hosts.containsKey(name)) { + return false; + } + + var renamed = hosts.remove(host); + if (renamed == null) { + return false; + } + + hosts.put(name, renamed); + + return true; + } + public boolean deleteHost(String host) { return hosts.remove(host) != null; } diff --git a/src/main/java/gay/ampflower/maven/Console.java b/src/main/java/gay/ampflower/maven/Console.java index 6e696c7..0087113 100644 --- a/src/main/java/gay/ampflower/maven/Console.java +++ b/src/main/java/gay/ampflower/maven/Console.java @@ -172,6 +172,18 @@ private static void registerHostCommand(CommandDispatcher<Console> dispatcher) { logger.info("No such host."); return 0; } + }))).then(literal("rename").then(argument("name", string()).executes(ctx -> { + var name = host(ctx, "name"); + var old = ctx.getSource().host; + + if (ctx.getSource().config.renameHost(old, name)) { + ctx.getSource().host = name; + logger.info("Renamed {} to {}", old, name); + return Command.SINGLE_SUCCESS; + } else { + logger.info("Either {} doesn't exist or {} already exists", old, name); + return 0; + } }))).then(literal("import").then(literal("legacy").then(argument("name", string()) .then(argument("maven", string()).then(argument("config", greedyString()).executes(ctx -> { try {