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