about summary refs log tree commit diff stats
path: root/037abandon.cc
Commit message (Expand)AuthorAgeFilesLines
* 3309Kartik K. Agaram2016-09-091-1/+1
* 3259Kartik K. Agaram2016-08-261-1/+1
* 3239Kartik K. Agaram2016-08-211-1/+1
* 3212 - bugfix in refcount managementKartik K. Agaram2016-08-171-16/+6
* 3211Kartik K. Agaram2016-08-171-1/+1
* 3209Kartik K. Agaram2016-08-171-3/+3
* 3202 - bugfix: 'start-running' and refcountsKartik K. Agaram2016-08-161-1/+3
* 3070Kartik K. Agaram2016-06-281-9/+4
* 2972 - abandon recursive containersKartik K. Agaram2016-05-171-7/+114
* 2970Kartik K. Agaram2016-05-171-4/+4
* 2968Kartik K. Agaram2016-05-171-2/+2
* 2961Kartik K. Agaram2016-05-151-1/+1
* 2927Kartik K. Agaram2016-05-051-6/+9
* 2922Kartik K. Agaram2016-05-041-20/+4
* 2898 - start filling in missing refcountsKartik K. Agaram2016-05-031-0/+1
* 2897Kartik K. Agaram2016-05-031-0/+143
div>




















                                                
                               



                              
                                                                 






































                                                                
                                                             

                                  
package commands

import (
	"errors"
	"strings"

	"git.sr.ht/~sircmpwn/aerc/widgets"

	"github.com/go-ini/ini"
)

type Set struct{}

func setUsage() string {
	return "set <category>.<option> <value>"
}

func init() {
	register(Set{})
}

func (Set) Aliases() []string {
	return []string{"set"}

}

func (Set) Complete(aerc *widgets.Aerc, args []string) []string {
	return nil
}

func SetCore(aerc *widgets.Aerc, args []string) error {
	if len(args) != 3 {
		return errors.New("Usage: " + setUsage())
	}

	config := aerc.Config()

	parameters := strings.Split(args[1], ".")

	if len(parameters) != 2 {
		return errors.New("Usage: " + setUsage())
	}

	category := parameters[0]
	option := parameters[1]
	value := args[2]

	new_file := ini.Empty()

	section, err := new_file.NewSection(category)

	if err != nil {
		return nil
	}

	if _, err := section.NewKey(option, value); err != nil {
		return err
	}

	if err := config.LoadConfig(new_file); err != nil {
		return err
	}

	return nil
}

func (Set) Execute(aerc *widgets.Aerc, args []string) error {
	return SetCore(aerc, args)
}