From e320ac31d533fd05d80ebc2dfe56a922aa07ff10 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Sat, 12 Jul 2014 13:58:38 +0400 Subject: [PATCH] Switch aptly repo move/copy/import/remove to use new filters based on queries. --- cmd/repo_move.go | 11 ++++++++++- cmd/repo_remove.go | 11 ++++++++++- system/t09_repo/CopyRepo5Test_gold | 2 +- system/t09_repo/ImportRepo5Test_gold | 2 +- system/t09_repo/MoveRepo5Test_gold | 2 +- system/t09_repo/cmdimport.py | 2 +- 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/cmd/repo_move.go b/cmd/repo_move.go index f34810ca..fcddfb41 100644 --- a/cmd/repo_move.go +++ b/cmd/repo_move.go @@ -3,6 +3,7 @@ package cmd import ( "fmt" "github.com/smira/aptly/deb" + "github.com/smira/aptly/query" "github.com/smira/commander" "github.com/smira/flag" "sort" @@ -105,7 +106,15 @@ func aptlyRepoMoveCopyImport(cmd *commander.Command, args []string) error { } } - toProcess, err := srcList.Filter(args[2:], withDeps, dstList, context.DependencyOptions(), architecturesList) + queries := make([]deb.PackageQuery, len(args)-2) + for i := 0; i < len(args)-2; i++ { + queries[i], err = query.Parse(args[i+2]) + if err != nil { + return fmt.Errorf("unable to %s: %s", command, err) + } + } + + toProcess, err := srcList.Filter(queries, withDeps, dstList, context.DependencyOptions(), architecturesList) if err != nil { return fmt.Errorf("unable to %s: %s", command, err) } diff --git a/cmd/repo_remove.go b/cmd/repo_remove.go index ccbc8ef1..11cf2c10 100644 --- a/cmd/repo_remove.go +++ b/cmd/repo_remove.go @@ -3,6 +3,7 @@ package cmd import ( "fmt" "github.com/smira/aptly/deb" + "github.com/smira/aptly/query" "github.com/smira/commander" "github.com/smira/flag" ) @@ -33,8 +34,16 @@ func aptlyRepoRemove(cmd *commander.Command, args []string) error { return fmt.Errorf("unable to load packages: %s", err) } + queries := make([]deb.PackageQuery, len(args)-1) + for i := 0; i < len(args)-1; i++ { + queries[i], err = query.Parse(args[i+1]) + if err != nil { + return fmt.Errorf("unable to remove: %s", err) + } + } + list.PrepareIndex() - toRemove, err := list.Filter(args[1:], false, nil, 0, nil) + toRemove, err := list.Filter(queries, false, nil, 0, nil) if err != nil { return fmt.Errorf("unable to remove: %s", err) } diff --git a/system/t09_repo/CopyRepo5Test_gold b/system/t09_repo/CopyRepo5Test_gold index 104aa34d..75e88af8 100644 --- a/system/t09_repo/CopyRepo5Test_gold +++ b/system/t09_repo/CopyRepo5Test_gold @@ -1,3 +1,3 @@ -ERROR: unable to copy: unable to parse dependency: pyspi >> 0.6.1-1.3) +ERROR: unable to copy: parsing failed: unexpected token >>: expecting end of query Loading packages... \ No newline at end of file diff --git a/system/t09_repo/ImportRepo5Test_gold b/system/t09_repo/ImportRepo5Test_gold index ebf8bd64..1da450d7 100644 --- a/system/t09_repo/ImportRepo5Test_gold +++ b/system/t09_repo/ImportRepo5Test_gold @@ -1,3 +1,3 @@ -ERROR: unable to import: unable to parse dependency: pyspi >> 0.6.1-1.3) +ERROR: unable to import: parsing failed: unexpected token >>: expecting end of query Loading packages... \ No newline at end of file diff --git a/system/t09_repo/MoveRepo5Test_gold b/system/t09_repo/MoveRepo5Test_gold index b6e1e736..88dde5c5 100644 --- a/system/t09_repo/MoveRepo5Test_gold +++ b/system/t09_repo/MoveRepo5Test_gold @@ -1,3 +1,3 @@ -ERROR: unable to move: unable to parse dependency: pyspi >> 0.6.1-1.3) +ERROR: unable to move: parsing failed: unexpected token >>: expecting end of query Loading packages... \ No newline at end of file diff --git a/system/t09_repo/cmdimport.py b/system/t09_repo/cmdimport.py index f680a13d..57b8212e 100644 --- a/system/t09_repo/cmdimport.py +++ b/system/t09_repo/cmdimport.py @@ -10,7 +10,7 @@ class ImportRepo1Test(BaseTest): "aptly repo create -comment=Cool -distribution=squeeze repo1", "aptly repo add repo1 ${files}" ] - runCmd = "aptly repo import wheezy-main repo1 nginx unpaper_0.4.2-1_amd64" + runCmd = "aptly repo import wheezy-main repo1 'nginx (>= 1.2)' unpaper_0.4.2-1_amd64" def check(self): self.check_output()