| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // utils
- package main
- import (
- "fmt"
- "io"
- "io/ioutil"
- "os"
- "os/user"
- "path"
- )
- type Hfile struct {
- name string
- dir string
- path string
- handle *os.File
- }
- type Tmpfile struct {
- path string
- dir string
- name string
- handle *os.File
- }
- func (f *Hfile) init() {
- u, err := user.Current()
- if err != nil {
- fmt.Println("Panicking!")
- panic(fmt.Sprintf("%v", err))
- }
- f.dir = u.HomeDir
- f.path = path.Join(f.dir, f.name)
- }
- func (f *Tmpfile) init() {
- tmpdir, err := ioutil.TempDir(os.TempDir(), f.name)
- if err != nil {
- fmt.Println("Panicking!")
- panic(fmt.Sprintf("%v", err))
- }
- f.dir = tmpdir
- f.path = path.Join(f.dir, f.name)
- }
- func (h *Hfile) Open() {
- fh, err := os.Open(h.path)
- if err != nil {
- fmt.Print(err)
- }
- h.handle = fh
- }
- func (h *Tmpfile) Open() {
- fh, err := os.OpenFile(h.path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600)
- if err != nil {
- fmt.Print(err)
- }
- h.handle = fh
- }
- func CopyFile(src, dst string) (int64, error) {
- sf, err := os.Open(src)
- if err != nil {
- return 0, err
- }
- defer sf.Close()
- df, err := os.Create(dst)
- if err != nil {
- return 0, err
- }
- df.Chmod(0600)
- defer df.Close()
- return io.Copy(df, sf)
- }
|