221 lines
4.1 KiB
Go
221 lines
4.1 KiB
Go
package file
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
"os/exec"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
var Debug int = 0
|
|
|
|
//List function
|
|
|
|
// Thao tac file
|
|
func Create_file(path string) {
|
|
// detect if file exists
|
|
var _, err = os.Stat(path)
|
|
|
|
// create file if not exists
|
|
if os.IsNotExist(err) {
|
|
var file, err = os.Create(path)
|
|
if IsError(err) {
|
|
//return
|
|
}
|
|
defer file.Close()
|
|
}
|
|
|
|
//Println("==> done creating file", path)
|
|
}
|
|
func Write_file(msg string, path string) {
|
|
// open file using READ & WRITE permission
|
|
//Check_dir(path)
|
|
// Println("==>begin writting ")
|
|
//var file, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND, 0777)
|
|
var file, err = os.OpenFile(path, os.O_RDWR, 0777)
|
|
if IsError(err) {
|
|
//return
|
|
}
|
|
defer file.Close()
|
|
|
|
_, err = file.WriteString(msg)
|
|
if IsError(err) {
|
|
//return
|
|
}
|
|
// save changes
|
|
err = file.Sync()
|
|
if IsError(err) {
|
|
//return
|
|
}
|
|
//Println("==> done writing to file")
|
|
}
|
|
|
|
func Write_log(msg string, path string) {
|
|
Check_path(path)
|
|
year, month, day := time.Now().Date()
|
|
new_path := strconv.Itoa(year) + "-" + strconv.Itoa(int(month)) + "-" + strconv.Itoa(day) + ".txt"
|
|
path = path + "/" + new_path
|
|
Check_dir(path)
|
|
var file, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND, 0777)
|
|
if IsError(err) {
|
|
////return
|
|
if Debug == 1 {
|
|
fmt.Printf("%v", err)
|
|
}
|
|
|
|
}
|
|
defer file.Close()
|
|
_, err = file.WriteString("[")
|
|
if IsError(err) {
|
|
////return
|
|
}
|
|
_, err = file.WriteString(time.Now().String())
|
|
if IsError(err) {
|
|
////return
|
|
}
|
|
// write some text line-by-line to file
|
|
_, err = file.WriteString("] : ")
|
|
if IsError(err) {
|
|
////return
|
|
}
|
|
_, err = file.WriteString(msg)
|
|
if IsError(err) {
|
|
////return
|
|
}
|
|
_, err = file.WriteString("\n")
|
|
if IsError(err) {
|
|
////return
|
|
}
|
|
|
|
// save changes
|
|
err = file.Sync()
|
|
if IsError(err) {
|
|
////return
|
|
}
|
|
|
|
//Println("==> done writing to file")
|
|
}
|
|
func Println(msg string) {
|
|
if Debug == 1 {
|
|
fmt.Println(msg)
|
|
}
|
|
}
|
|
func DeleteFile(path string) {
|
|
// delete file
|
|
var err = os.Remove(path)
|
|
if IsError(err) {
|
|
//return
|
|
}
|
|
|
|
Println("==> done deleting file")
|
|
|
|
}
|
|
func DeleteForder(path string) {
|
|
var cmd = "rm -rf " + path
|
|
var log = "/admin/monitor/log/log_launcher"
|
|
_, err := exec.Command("sh", "-c", cmd).Output()
|
|
if err != nil {
|
|
fmt.Println("Delete forder error,Path:" + path)
|
|
Write_log("Delete forder file error,Path:"+path, log)
|
|
} else {
|
|
Println("Delete forder Done ")
|
|
}
|
|
}
|
|
func CoppyFile(path string, id int) {
|
|
var cmd = "mv " + path + " /admin/monitor/backup/Config_" + strconv.Itoa(id) + ".txt"
|
|
var log = "/admin/monitor/log/log_launcher"
|
|
_, err := exec.Command("sh", "-c", cmd).Output()
|
|
if err != nil {
|
|
fmt.Println("Move file error,Path:" + path)
|
|
Write_log("Move file error,Path:"+path, log)
|
|
} else {
|
|
fmt.Println("Move file error,Path:" + path)
|
|
Write_log("Move file error,Path:"+path, log)
|
|
}
|
|
}
|
|
func IsError(err error) bool {
|
|
if err != nil {
|
|
if Debug == 1 {
|
|
fmt.Println(err.Error())
|
|
}
|
|
|
|
}
|
|
|
|
return (err != nil)
|
|
}
|
|
func Check_path(path string) {
|
|
// Check directory ?
|
|
_, err := exec.Command("sh", "-c", "cd "+path).Output()
|
|
if err != nil {
|
|
|
|
fmt.Println(path + " not Exits\n")
|
|
|
|
_, err1 := exec.Command("sh", "-c", "mkdir "+path).Output()
|
|
if err1 != nil {
|
|
|
|
Println(" Cant create " + path)
|
|
|
|
} else {
|
|
|
|
Println(" Create forder " + path)
|
|
|
|
}
|
|
} else {
|
|
|
|
Println(path + " ok \n")
|
|
|
|
}
|
|
}
|
|
func Check_dir(path string) {
|
|
|
|
Println("Function Check_dir ()")
|
|
|
|
//Println("------------>Check_dir <------------")
|
|
var file, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND, 0777)
|
|
//Printf("Kieu file : %T\t", file)
|
|
//Printf("Kieu file : %v\n", file)
|
|
if IsError(err) {
|
|
if Debug == 1 {
|
|
fmt.Printf("%v", err)
|
|
}
|
|
|
|
}
|
|
if file == nil {
|
|
Create_file(path)
|
|
}
|
|
defer file.Close()
|
|
}
|
|
|
|
func ReadFile(path string) string {
|
|
// re-open file
|
|
var msg string = ""
|
|
var file, err = os.OpenFile(path, os.O_RDWR, 0777)
|
|
if err != nil {
|
|
if Debug == 1 {
|
|
Println(" Open file error")
|
|
}
|
|
|
|
} else {
|
|
// read file, line by line
|
|
var text = make([]byte, 2048)
|
|
for {
|
|
_, err = file.Read(text)
|
|
// break if finally arrived at end of file
|
|
if err == io.EOF {
|
|
break
|
|
}
|
|
|
|
// break if error occured
|
|
if err != nil && err != io.EOF {
|
|
IsError(err)
|
|
break
|
|
}
|
|
}
|
|
msg = string(text)
|
|
}
|
|
defer file.Close()
|
|
return msg
|
|
}
|