mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-27 09:45:45 +03:00
Merge pull request #2570 from andreynering/fix-1738
Workaround delete folder on Windows.
This commit is contained in:
commit
e2b4a24cb6
1 changed files with 10 additions and 1 deletions
|
@ -7,6 +7,7 @@ package models
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -14,6 +15,7 @@ import (
|
||||||
|
|
||||||
"github.com/gogits/gogs/modules/base"
|
"github.com/gogits/gogs/modules/base"
|
||||||
"github.com/gogits/gogs/modules/log"
|
"github.com/gogits/gogs/modules/log"
|
||||||
|
"github.com/gogits/gogs/modules/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NoticeType int
|
type NoticeType int
|
||||||
|
@ -53,7 +55,14 @@ func CreateRepositoryNotice(desc string) error {
|
||||||
// RemoveAllWithNotice removes all directories in given path and
|
// RemoveAllWithNotice removes all directories in given path and
|
||||||
// creates a system notice when error occurs.
|
// creates a system notice when error occurs.
|
||||||
func RemoveAllWithNotice(title, path string) {
|
func RemoveAllWithNotice(title, path string) {
|
||||||
if err := os.RemoveAll(path); err != nil {
|
var err error
|
||||||
|
if setting.IsWindows {
|
||||||
|
err = exec.Command("cmd", "/C", "rmdir", "/S", "/Q", path).Run()
|
||||||
|
} else {
|
||||||
|
err = os.RemoveAll(path)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
desc := fmt.Sprintf("%s [%s]: %v", title, path, err)
|
desc := fmt.Sprintf("%s [%s]: %v", title, path, err)
|
||||||
log.Warn(desc)
|
log.Warn(desc)
|
||||||
if err = CreateRepositoryNotice(desc); err != nil {
|
if err = CreateRepositoryNotice(desc); err != nil {
|
||||||
|
|
Loading…
Reference in a new issue