From e78b3cc629ff230ddb3479a036c1858a76ee7f5a Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 12 Mar 2016 19:28:32 +0100 Subject: returning next sourceuri when filepolicy = keep diff --git a/rhimport/fetcher.go b/rhimport/fetcher.go index dd4b6df..f501bc6 100644 --- a/rhimport/fetcher.go +++ b/rhimport/fetcher.go @@ -265,14 +265,22 @@ func fetchFileArchiv(ctx *Context, res *Result, uri *url.URL) (err error) { } func fetchFileLocal(ctx *Context, res *Result, uri *url.URL) (err error) { - rhl.Printf("Local fetcher called for '%s'", ctx.SourceUri) + return fetchFileDir(ctx, res, uri, ctx.conf.LocalFetchDir) +} + +func fetchFileTmp(ctx *Context, res *Result, uri *url.URL) (err error) { + return fetchFileDir(ctx, res, uri, ctx.conf.TempDir) +} + +func fetchFileDir(ctx *Context, res *Result, uri *url.URL, dir string) (err error) { + rhl.Printf("Dir fetcher called for '%s'", ctx.SourceUri) if ctx.ProgressCallBack != nil { if keep := ctx.ProgressCallBack(1, "fetching", 0.0, ctx.ProgressCallBackData); !keep { ctx.ProgressCallBack = nil } } - ctx.SourceFile = filepath.Join(ctx.conf.LocalFetchDir, path.Clean("/"+uri.Path)) + ctx.SourceFile = filepath.Join(dir, path.Clean("/"+uri.Path)) var src *os.File if src, err = os.Open(ctx.SourceFile); err != nil { res.ResponseCode = http.StatusBadRequest @@ -347,6 +355,7 @@ type FetchFunc func(*Context, *Result, *url.URL) (err error) var ( fetchers = map[string]FetchFunc{ "local": fetchFileLocal, + "tmp": fetchFileTmp, "fake": fetchFileFake, } curlProtos = map[string]bool{ diff --git a/rhimport/importer.go b/rhimport/importer.go index c840bae..952f75a 100644 --- a/rhimport/importer.go +++ b/rhimport/importer.go @@ -32,6 +32,7 @@ import ( "net/http" "os" "path" + "strings" "github.com/andelf/go-curl" ) @@ -425,7 +426,11 @@ func cleanupFiles(ctx *Context, res *Result) { } } } else { - res.SourceFile = ctx.SourceFile + if strings.HasPrefix(ctx.SourceFile, ctx.conf.LocalFetchDir) { + res.SourceFile = "local://" + strings.TrimPrefix(ctx.SourceFile, ctx.conf.LocalFetchDir) + } else if strings.HasPrefix(ctx.SourceFile, ctx.conf.TempDir) { + res.SourceFile = "tmp://" + strings.TrimPrefix(ctx.SourceFile, ctx.conf.TempDir) + } } return } -- cgit v0.10.2