summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rhimport/fetcher.go13
-rw-r--r--rhimport/importer.go7
2 files changed, 17 insertions, 3 deletions
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
}