func CheckConfigDirectory() error {
	if _, err := os.Stat(ConfigDirPath); os.IsNotExist(err) {
		if err := os.Mkdir(ConfigDirPath, 0770); err != nil {
			return err
		}
	}
	return nil
}
CheckConfigDirectory checks if config directory `$HOME/.air` is present.
If not present, atttempts to create one.
package utils
import (
	"errors"
	"io/ioutil"
	"os"
	"os/user"
	"path/filepath"
	"strings"
	"github.com/AlecAivazis/survey/v2"
	"github.com/gookit/color"
	"github.com/spf13/viper"
	"gopkg.in/yaml.v2"
)
type AirConfig interface {
	load() Config
}
type Stations struct {
	StationName string `yaml:"stationName,omitempty"`
	UID         int    `yaml:"uid,omitempty"`
	SearchQuery string `yaml:"searchQuery,omitempty"`
}
type Config struct {
	ApiKey   string              `yaml:"apiKey,omitempty"`
	Stations map[string]Stations `yaml:"stations,omitempty"`
}
func (c *Config) UpdateApiKey(newKey string) {
	c.ApiKey = newKey
}
func (c *Config) load() error {
	err := viper.Unmarshal(&c)
	if err != nil {
		return err
	}
	return nil
}
var usr, _ = user.Current()
var ConfigDirPath = filepath.Join(usr.HomeDir, ".air")
var ConfigFilePath = filepath.Join(ConfigDirPath, "aqi")