Command aptly repo list.

This commit is contained in:
Andrey Smirnov
2014-02-20 17:04:06 +04:00
parent 54421a9377
commit 196dc56dd9
6 changed files with 91 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ func makeCmdRepo() *commander.Command {
Subcommands: []*commander.Command{
makeCmdRepoCreate(),
makeCmdRepoShow(),
makeCmdRepoList(),
},
Flag: *flag.NewFlagSet("aptly-repo", flag.ExitOnError),
}

62
cmd/repo_list.go Normal file
View File

@@ -0,0 +1,62 @@
package cmd
import (
"fmt"
"github.com/gonuts/commander"
"github.com/gonuts/flag"
"github.com/smira/aptly/debian"
"sort"
)
func aptlyRepoList(cmd *commander.Command, args []string) error {
var err error
if len(args) != 0 {
cmd.Usage()
return err
}
localRepoCollection := debian.NewLocalRepoCollection(context.database)
if localRepoCollection.Len() > 0 {
fmt.Printf("List of mirrors:\n")
repos := make([]string, localRepoCollection.Len())
i := 0
localRepoCollection.ForEach(func(repo *debian.LocalRepo) error {
err := localRepoCollection.LoadComplete(repo)
if err != nil {
return err
}
repos[i] = fmt.Sprintf(" * %s (packages: %d)", repo.String(), repo.NumPackages())
i++
return nil
})
sort.Strings(repos)
for _, repo := range repos {
fmt.Println(repo)
}
fmt.Printf("\nTo get more information about local repository, run `aptly repo show <name>`.\n")
} else {
fmt.Printf("No local repositories found, create one with `aptly repo create ...`.\n")
}
return err
}
func makeCmdRepoList() *commander.Command {
cmd := &commander.Command{
Run: aptlyRepoList,
UsageLine: "list",
Short: "list local package repositories",
Long: `
List shows full list of local package repositories.
ex:
$ aptly repo list
`,
Flag: *flag.NewFlagSet("aptly-repo-list", flag.ExitOnError),
}
return cmd
}

View File

@@ -0,0 +1 @@
No local repositories found, create one with `aptly repo create ...`.

View File

@@ -0,0 +1,6 @@
List of mirrors:
* [repo1] (packages: 0)
* [repo2]: Cool2 (packages: 0)
* [repo3]: Cool3 (packages: 0)
To get more information about local repository, run `aptly repo show <name>`.

View File

@@ -4,3 +4,4 @@ Testing local repo management
from .create import *
from .show import *
from .list import *

20
system/t09_repo/list.py Normal file
View File

@@ -0,0 +1,20 @@
from lib import BaseTest
class ListRepo1Test(BaseTest):
"""
list local repos: no repos
"""
runCmd = "aptly repo list"
class ListRepo2Test(BaseTest):
"""
list local repo: normal
"""
fixtureCmds = [
"aptly repo create -comment=Cool3 repo3",
"aptly repo create -comment=Cool2 repo2",
"aptly repo create repo1",
]
runCmd = "aptly repo list"