mirror of
https://github.com/beego/bee.git
synced 2025-06-19 17:00:40 +00:00
Refactor!
create sub packages delete unused code delete code from not use command cmdRouter,cmdTest, cmdRundocs make command plugins check with gosimple,staticcheck,go vet,unused,unconvert
This commit is contained in:
88
cmd/commands/run/docs.go
Normal file
88
cmd/commands/run/docs.go
Normal file
@ -0,0 +1,88 @@
|
||||
package run
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
beeLogger "github.com/beego/bee/logger"
|
||||
)
|
||||
|
||||
var (
|
||||
swaggerVersion = "2"
|
||||
swaggerlink = "https://github.com/beego/swagger/archive/v" + swaggerVersion + ".zip"
|
||||
)
|
||||
|
||||
func downloadFromURL(url, fileName string) {
|
||||
var down bool
|
||||
if fd, err := os.Stat(fileName); err != nil && os.IsNotExist(err) {
|
||||
down = true
|
||||
} else if fd.Size() == int64(0) {
|
||||
down = true
|
||||
} else {
|
||||
beeLogger.Log.Infof("'%s' already exists", fileName)
|
||||
return
|
||||
}
|
||||
if down {
|
||||
beeLogger.Log.Infof("Downloading '%s' to '%s'...", url, fileName)
|
||||
output, err := os.Create(fileName)
|
||||
if err != nil {
|
||||
beeLogger.Log.Errorf("Error while creating '%s': %s", fileName, err)
|
||||
return
|
||||
}
|
||||
defer output.Close()
|
||||
|
||||
response, err := http.Get(url)
|
||||
if err != nil {
|
||||
beeLogger.Log.Errorf("Error while downloading '%s': %s", url, err)
|
||||
return
|
||||
}
|
||||
defer response.Body.Close()
|
||||
|
||||
n, err := io.Copy(output, response.Body)
|
||||
if err != nil {
|
||||
beeLogger.Log.Errorf("Error while downloading '%s': %s", url, err)
|
||||
return
|
||||
}
|
||||
beeLogger.Log.Successf("%d bytes downloaded!", n)
|
||||
}
|
||||
}
|
||||
|
||||
func unzipAndDelete(src string) error {
|
||||
beeLogger.Log.Infof("Unzipping '%s'...", src)
|
||||
r, err := zip.OpenReader(src)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer r.Close()
|
||||
|
||||
rp := strings.NewReplacer("swagger-"+swaggerVersion, "swagger")
|
||||
for _, f := range r.File {
|
||||
rc, err := f.Open()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer rc.Close()
|
||||
|
||||
fname := rp.Replace(f.Name)
|
||||
if f.FileInfo().IsDir() {
|
||||
os.MkdirAll(fname, f.Mode())
|
||||
} else {
|
||||
f, err := os.OpenFile(
|
||||
fname, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
_, err = io.Copy(f, rc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
beeLogger.Log.Successf("Done! Deleting '%s'...", src)
|
||||
return os.RemoveAll(src)
|
||||
}
|
Reference in New Issue
Block a user