Esempio n. 1
0
// AddCommand adds a Note
func AddCommand(c *cli.Context, i storage.Impl) (n storage.Note, err error) {
	nName, err := NoteName(c)
	if err != nil {
		return n, err
	}

	if exists := i.NoteExists(nName); exists == true {
		return n, fmt.Errorf("Note already exists")
	}

	n.Name = nName
	n.Temporary = c.Bool("t")

	// Only open editor if -p (read from clipboard) isnt set
	if c.IsSet("p") {
		nText, err := clipboard.ReadAll()
		if err != nil {
			return n, err
		}
		n.Text = nText
	} else {
		if err := writer.WriteNote(&n); err != nil {
			return n, err
		}
	}

	if err := i.SaveNote(&n); err != nil {
		return n, err
	}

	return n, nil
}
Esempio n. 2
0
// RenameCommand renames a Note
func RenameCommand(c *cli.Context, i storage.Impl) (nName string, newName string, err error) {
	nName, err = NoteName(c)
	if err != nil {
		return nName, newName, err
	}

	n, err := i.LoadNote(nName)
	if err != nil {
		return nName, newName, err
	}

	reader := bufio.NewReader(os.Stdin)
	fmt.Print(fmt.Sprintf("Rename note '%s' to: ", n.Name))
	newName, err = reader.ReadString('\n')
	if err != nil {
		return nName, newName, err
	}

	newName = strings.Trim(newName, "\n")

	if newName == "" {
		return nName, newName, errors.New("Note name can't be blank")
	}

	if i.NoteExists(newName) == true {
		return nName, newName, fmt.Errorf("Note '%s' already exists", newName)
	}

	if err = i.RenameNote(n.ID, newName); err != nil {
		return nName, newName, fmt.Errorf("Failed to rename note '%s' to '%s'.", nName, newName)
	}

	return nName, newName, nil
}