001package co.codewizards.cloudstore.client;
002
003import java.io.File;
004import java.util.Collection;
005import java.util.UUID;
006
007import co.codewizards.cloudstore.core.repo.local.LocalRepoRegistry;
008
009/**
010 * {@link SubCommand} implementation for listing all repositories in the local file system
011 * (known to the {@link LocalRepoRegistry}).
012 *
013 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de
014 */
015public class RepoListSubCommand extends SubCommand
016{
017        public RepoListSubCommand() { }
018
019        @Override
020        public String getSubCommandDescription() {
021                return "List all local repositories known to the registry.";
022        }
023
024        @Override
025        public void run() throws Exception {
026                LocalRepoRegistry localRepoRegistry = LocalRepoRegistry.getInstance();
027                System.out.println("Local repositories:");
028                for (UUID repositoryId : localRepoRegistry.getRepositoryIds()) {
029                        File localRoot = localRepoRegistry.getLocalRoot(repositoryId);
030                        Collection<String> repositoryAliases = localRepoRegistry.getRepositoryAliasesOrFail(repositoryId.toString());
031                        System.out.println(String.format("  * repository.repositoryId = %s", repositoryId));
032                        System.out.println(String.format("    repository.localRoot = %s", localRoot));
033                        System.out.println(String.format("    repository.aliases = %s", repositoryAliases));
034                        System.out.println();
035                }
036        }
037}