func execPath() (string, error) {
	file, err := exec.LookPath(os.Args[0])
	if err != nil {
		return "", err
	}
	return filepath.Abs(file)
}
execPath returns the executable path.
package config
import (
	"github.com/countstarlight/homo/module/audio"
	"github.com/countstarlight/homo/module/com"
	"github.com/go-ini/ini"
	"github.com/sirupsen/logrus"
	"github.com/urfave/cli"
	"os"
	"os/exec"
	"path"
	"path/filepath"
	"strconv"
	"strings"
	"sync"
)
var (
	AppPath string
	LogPath string
	DebugMode      bool
	SilenceMode    bool
	OfflineMode    bool
	InterruptMode  bool
	AnalyticalMode bool  
	Cfg      *ini.File
	ConfFile string
	RawDir   string
	InputRaw string
	InputWav string
	HMMDirEn        string
	DictFileEn      string
	LMFileEn        string
	SphinxLogFile   string
	RecordThreshold int
	ConversationAPI string
	ParseAPI        string
	NluProject      string
	NluModel        string
	BaiduASRAPI         string
	BaiduTTSAPI         string
	BaiduVoiceAuthUrl   string
	BaiduVoiceAPIKey    string
	BaiduVoiceAPISecret string
	TTSDir     string
	TTSOutFile string
	IsPlayingVoice bool
	WakeUpd        bool
	WakeUpDisabled bool
	VoicePlayMutex sync.Mutex
	SphinxLoop     sync.WaitGroup  
	WakeUpWait     sync.WaitGroup
	RawToWav bool
)
const (
	AppName    = "Homo Webview"
	AppVersion = "0.0.1"
)