Esempio n. 1
0
func saveHistory(state *liner.State, historyFileName string) error {
	user, err := user.Current()
	if err != nil {
		return err
	}
	path := path.Join(user.HomeDir, historyFileName)
	// append for multi-sessions handling
	f, err := os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0600) // os.O_TRUNC
	if err != nil {
		return err
	}
	defer f.Close()

	w := bufio.NewWriter(f)
	_, err = state.WriteHistory(w)
	if err != nil {
		return err
	}
	err = w.Flush()
	return err
}