55 "io"
66 "net/http"
77 "os"
8+ "path"
89 "runtime"
910 "strconv"
1011 "strings"
@@ -15,16 +16,16 @@ import (
1516 "github.com/pkg/errors"
1617)
1718
18- func (c * config ) download (path , prefix , ua string , waits time.Duration , usecust , usetrs , force bool ) error {
19+ func (c * config ) download (p , prefix , home , ua string , waits time.Duration , usecust , usetrs , force bool ) error {
1920 for i , t := range c .Targets {
2021 if t .Refer != "" {
21- refp := path [:strings .LastIndex (path , "/" )+ 1 ] + t .Refer
22+ refp := p [:strings .LastIndex (p , "/" )+ 1 ] + t .Refer
2223 infof ("#%s%d refer to target '%s'." , prefix , i + 1 , refp )
2324 refcfg , err := readconfig (refp , usecust )
2425 if err != nil {
2526 return err
2627 }
27- err = refcfg .download (refp , prefix + strconv .Itoa (i + 1 )+ "." , ua , waits , usecust , usetrs , force )
28+ err = refcfg .download (refp , prefix + strconv .Itoa (i + 1 )+ "." , home , ua , waits , usecust , usetrs , force )
2829 if err != nil {
2930 return err
3031 }
@@ -38,11 +39,12 @@ func (c *config) download(path, prefix, ua string, waits time.Duration, usecust,
3839 warnf ("#%s%d target required Arch: %s but you are %s, skip." , prefix , i + 1 , t .Arch , runtime .GOARCH )
3940 continue
4041 }
41- err := os .MkdirAll (t .Folder , 0755 )
42+ homefolder := path .Join (home , t .Folder )
43+ err := os .MkdirAll (homefolder , 0755 )
4244 if err != nil {
43- return errors .Wrap (err , fmt .Sprintf ("#%s%d make target folder '%s'" , prefix , i + 1 , t . Folder ))
45+ return errors .Wrap (err , fmt .Sprintf ("#%s%d make target folder '%s'" , prefix , i + 1 , homefolder ))
4446 }
45- infof ("#%s%d open target folder '%s'." , prefix , i + 1 , t . Folder )
47+ infof ("#%s%d open target folder '%s'." , prefix , i + 1 , homefolder )
4648 if len (t .Copy ) == 0 {
4749 warnf ("#%s%d empty copy target." , prefix , i + 1 )
4850 continue
@@ -57,7 +59,7 @@ func (c *config) download(path, prefix, ua string, waits time.Duration, usecust,
5759 if sleep > time .Millisecond {
5860 time .Sleep (sleep )
5961 }
60- fname := t . Folder + "/" + cp [strings .LastIndex (cp , "/" )+ 1 :]
62+ fname := path . Join ( homefolder , cp [strings .LastIndex (cp , "/" )+ 1 :])
6163 if ! force {
6264 if _ , err := os .Stat (fname ); err == nil || os .IsExist (err ) {
6365 warnf ("#%s%d skip exist file %s" , prefix , i + 1 , fname )
0 commit comments