fix: watch file change event repeat trigger
fix: fault source copy path
This commit is contained in:
parent
baea60d195
commit
ff5e291ad4
17
output.go
17
output.go
|
@ -76,23 +76,23 @@ func (o *Outter) sourceCopy() {
|
||||||
var args []string
|
var args []string
|
||||||
switch runtime.GOOS {
|
switch runtime.GOOS {
|
||||||
case "windows":
|
case "windows":
|
||||||
args = []string{"cmd.exe", "/C", "xcopy", "/e"}
|
args = []string{"cmd.exe", "/C", "xcopy", "/e", "/y"}
|
||||||
default:
|
default:
|
||||||
args = []string{"cp", "-r"}
|
args = []string{"cp", "-r"}
|
||||||
}
|
}
|
||||||
themePath := slash(fmt.Sprintf("./themes/%s/", o.Config.Theme))
|
themePath := slash(fmt.Sprintf("./themes/%s/", o.Config.Theme))
|
||||||
destPath := slash("./dist/")
|
destPath := slash("./dist/")
|
||||||
cmd := exec.Command(args[0], append(args, themePath+"css", destPath)...)
|
cmd := exec.Command(args[0], append(args, themePath+"css", slash(destPath+"css/"))...)
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
sout(cmd.String())
|
sout(cmd.String())
|
||||||
sfault("copy theme css source failed: %v", err)
|
sfault("copy theme css source failed: %v", err)
|
||||||
}
|
}
|
||||||
cmd = exec.Command(args[0], append(args, themePath+"js", destPath)...)
|
cmd = exec.Command(args[0], append(args, themePath+"js", slash(destPath+"js/"))...)
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
sout(cmd.String())
|
sout(cmd.String())
|
||||||
sfault("copy theme js source failed: %v", err)
|
sfault("copy theme js source failed: %v", err)
|
||||||
}
|
}
|
||||||
cmd = exec.Command(args[0], append(args, themePath+"images", destPath)...)
|
cmd = exec.Command(args[0], append(args, themePath+"images", slash(destPath+"images/"))...)
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
sout(cmd.String())
|
sout(cmd.String())
|
||||||
sfault("copy theme images source failed: %v", err)
|
sfault("copy theme images source failed: %v", err)
|
||||||
|
@ -191,7 +191,6 @@ func (o *Outter) generateIndex() {
|
||||||
}
|
}
|
||||||
buffer.Reset()
|
buffer.Reset()
|
||||||
}
|
}
|
||||||
sout("index generate success...")
|
|
||||||
o.Posts = make([]Post, len(posts))
|
o.Posts = make([]Post, len(posts))
|
||||||
copy(o.Posts, posts)
|
copy(o.Posts, posts)
|
||||||
}
|
}
|
||||||
|
@ -232,8 +231,6 @@ func (o *Outter) generatePost() {
|
||||||
}
|
}
|
||||||
postBuffer.Reset()
|
postBuffer.Reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
sout("post generate success...")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Outter) generatePage() {
|
func (o *Outter) generatePage() {
|
||||||
|
@ -266,8 +263,6 @@ func (o *Outter) generatePage() {
|
||||||
}
|
}
|
||||||
pageBuffer.Reset()
|
pageBuffer.Reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
sout("page generate success...")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Outter) generateArchives() {
|
func (o *Outter) generateArchives() {
|
||||||
|
@ -323,8 +318,6 @@ func (o *Outter) generateArchives() {
|
||||||
sfault("write archive page failed: %v", err)
|
sfault("write archive page failed: %v", err)
|
||||||
}
|
}
|
||||||
archiveBuffer.Reset()
|
archiveBuffer.Reset()
|
||||||
|
|
||||||
sout("archives generate success...")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *Outter) generateTags() {
|
func (o *Outter) generateTags() {
|
||||||
|
@ -401,8 +394,6 @@ func (o *Outter) generateTags() {
|
||||||
}
|
}
|
||||||
tagsBuffer.Reset()
|
tagsBuffer.Reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
sout("tags generate success...")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSource(data interface{}, key string) interface{} {
|
func getSource(data interface{}, key string) interface{} {
|
||||||
|
|
22
serve.go
22
serve.go
|
@ -1,7 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -18,10 +17,19 @@ func serveCmd() *cobra.Command {
|
||||||
w := watcher.New()
|
w := watcher.New()
|
||||||
w.SetMaxEvents(1)
|
w.SetMaxEvents(1)
|
||||||
w.FilterOps(watcher.Rename, watcher.Move, watcher.Write, watcher.Create)
|
w.FilterOps(watcher.Rename, watcher.Move, watcher.Write, watcher.Create)
|
||||||
if err := w.Ignore("./dist"); err != nil {
|
if err := w.AddRecursive("./data"); err != nil {
|
||||||
sfault("watch file failed: %v", err)
|
sfault("watch directory data failed: %v", err)
|
||||||
}
|
}
|
||||||
if err := w.AddRecursive("."); err != nil {
|
if err := w.AddRecursive("./posts"); err != nil {
|
||||||
|
sfault("watch directory posts failed: %v", err)
|
||||||
|
}
|
||||||
|
if err := w.AddRecursive("./pages"); err != nil {
|
||||||
|
sfault("watch directory pages failed: %v", err)
|
||||||
|
}
|
||||||
|
if err := w.AddRecursive("./themes"); err != nil {
|
||||||
|
sfault("watch directory pages failed: %v", err)
|
||||||
|
}
|
||||||
|
if err := w.Add("config.yaml"); err != nil {
|
||||||
sfault("watch file failed: %v", err)
|
sfault("watch file failed: %v", err)
|
||||||
}
|
}
|
||||||
// start http server
|
// start http server
|
||||||
|
@ -41,12 +49,12 @@ func serveCmd() *cobra.Command {
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-w.Event:
|
case event := <-w.Event:
|
||||||
// 文件变更 更新文件
|
// 文件变更 更新文件
|
||||||
if err := deployCmd().Execute(); err != nil {
|
if err := deployCmd().Execute(); err != nil {
|
||||||
sfault("re generate website failed: %v", err)
|
sfault("re generate website failed: %v", err)
|
||||||
}
|
}
|
||||||
sout("file change")
|
sout("file change: %v", event.String())
|
||||||
case err := <-w.Error:
|
case err := <-w.Error:
|
||||||
sfault("watch file failed: %v", err)
|
sfault("watch file failed: %v", err)
|
||||||
case <-w.Closed:
|
case <-w.Closed:
|
||||||
|
@ -59,7 +67,7 @@ func serveCmd() *cobra.Command {
|
||||||
sfault("generate website failed: %v", err)
|
sfault("generate website failed: %v", err)
|
||||||
}
|
}
|
||||||
// 五秒一次
|
// 五秒一次
|
||||||
fmt.Println("http://127.0.0.1:8666")
|
sout("http://127.0.0.1:8666")
|
||||||
if err := w.Start(time.Second * 5); err != nil {
|
if err := w.Start(time.Second * 5); err != nil {
|
||||||
sfault("watch file failed: %v", err)
|
sfault("watch file failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue