Compare commits

..

5 Commits

Author SHA1 Message Date
Lea Anthony
2e1e8b1513 v1.0.2-pre3 2020-01-09 08:40:31 +11:00
Byron
dd49292b68 Feat manjaro arm & deepin (#324)
* feat: new distros: manjaroARM & Deepin
2020-01-09 08:38:05 +11:00
Lea Anthony
af30e5e6ba load linuxdb from relative path 2020-01-08 06:49:54 +11:00
Lea Anthony
558cc9681c use channel to trigger shutdown 2020-01-03 09:05:51 +11:00
Lea Anthony
62f6bece57 fix: shutdown ipcmanager 2020-01-03 09:02:34 +11:00
8 changed files with 55 additions and 17 deletions

View File

@@ -132,6 +132,16 @@ func (fs *FSHelper) LocalDir(dir string) (*Dir, error) {
}, err
}
// LoadRelativeFile loads the given file relative to the caller's directory
func (fs *FSHelper) LoadRelativeFile(relativePath string) ([]byte, error) {
_, filename, _, _ := runtime.Caller(0)
fullPath, err := filepath.Abs(filepath.Join(path.Dir(filename), relativePath))
if err != nil {
return nil, err
}
return ioutil.ReadFile(fullPath)
}
// GetSubdirs will return a list of FQPs to subdirectories in the given directory
func (d *Dir) GetSubdirs() (map[string]string, error) {

View File

@@ -47,6 +47,10 @@ const (
ArcoLinux
// Manjaro distribution
Manjaro
// ManjaroARM distribution
ManjaroARM
// Deepin distribution
Deepin
)
// DistroInfo contains all the information relating to a linux distribution
@@ -134,6 +138,10 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = ArcoLinux
case "manjaro":
result.Distribution = Manjaro
case "manjaro-arm":
result.Distribution = ManjaroARM
case "deepin":
result.Distribution = Deepin
default:
result.Distribution = Unknown
}

View File

@@ -3,7 +3,6 @@ package cmd
import (
"log"
"github.com/leaanthony/mewn"
"gopkg.in/yaml.v3"
)
@@ -79,11 +78,14 @@ func (l *LinuxDB) GetDistro(distro string) *Distribution {
// NewLinuxDB creates a new LinuxDB instance from the bundled
// linuxdb.yaml file.
func NewLinuxDB() *LinuxDB {
data := mewn.Bytes("./linuxdb.yaml")
data, err := fs.LoadRelativeFile("./linuxdb.yaml")
if err != nil {
log.Fatal("Could not load linuxdb.yaml")
}
result := LinuxDB{
Distributions: make(map[string]*Distribution),
}
err := result.ImportData(data)
err = result.ImportData(data)
if err != nil {
log.Fatal(err)
}

View File

@@ -82,6 +82,15 @@ distributions:
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
deepin:
id: deepin
releases:
default:
version: default
name: Deepin
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
void:
id: void
releases:
@@ -158,6 +167,15 @@ distributions:
help: Please install with `sudo pacman -S gtk3` and try again
- name: webkit2gtk
help: Please install with `sudo pacman -S webkit2gtk` and try again
arcolinux:
id: arcolinux
releases:
default:
version: default
name: ArcoLinux
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
manjaro:
id: manjaro
releases:
@@ -167,12 +185,12 @@ distributions:
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
arcolinux:
id: arcolinux
manjaro-arm:
id: manjaro-arm
releases:
default:
version: default
name: ArcoLinux
name: Manjaro-ARM
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries

View File

@@ -274,9 +274,9 @@ func CheckDependencies(logger *Logger) (bool, error) {
distroInfo := GetLinuxDistroInfo()
switch distroInfo.Distribution {
case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon:
case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin:
libraryChecker = DpkgInstalled
case Arch, Manjaro, ArcoLinux:
case Arch, ArcoLinux, Manjaro, ManjaroARM:
libraryChecker = PacmanInstalled
case CentOS, Fedora:
libraryChecker = RpmInstalled

View File

@@ -1,4 +1,4 @@
package cmd
// Version - Wails version
const Version = "v1.0.2-pre2"
const Version = "v1.0.2-pre3"

View File

@@ -3,7 +3,6 @@ package event
import (
"fmt"
"sync"
"time"
"github.com/wailsapp/wails/lib/interfaces"
"github.com/wailsapp/wails/lib/logger"
@@ -13,6 +12,7 @@ import (
// Manager handles and processes events
type Manager struct {
incomingEvents chan *messages.EventData
quitChannel chan struct{}
listeners map[string][]*eventListener
running bool
log *logger.CustomLogger
@@ -24,6 +24,7 @@ type Manager struct {
func NewManager() interfaces.EventManager {
return &Manager{
incomingEvents: make(chan *messages.EventData, 100),
quitChannel: make(chan struct{}, 1),
listeners: make(map[string][]*eventListener),
running: false,
log: logger.NewCustomLogger("Events"),
@@ -141,8 +142,8 @@ func (e *Manager) Start(renderer interfaces.Renderer) {
}
}
}
default:
time.Sleep(1 * time.Millisecond)
case <-e.quitChannel:
e.running = false
}
}
e.wg.Done()
@@ -152,7 +153,7 @@ func (e *Manager) Start(renderer interfaces.Renderer) {
// Shutdown is called when exiting the Application
func (e *Manager) Shutdown() {
e.log.Debug("Shutting Down")
e.running = false
e.quitChannel <- struct{}{}
e.log.Debug("Waiting for main loop to exit")
e.wg.Wait()
}

View File

@@ -3,7 +3,6 @@ package ipc
import (
"fmt"
"sync"
"time"
"github.com/wailsapp/wails/lib/interfaces"
"github.com/wailsapp/wails/lib/logger"
@@ -124,8 +123,8 @@ func (i *Manager) Start(eventManager interfaces.EventManager, bindingManager int
i.log.DebugFields("Finished processing message", logger.Fields{
"1D": &incomingMessage,
})
default:
time.Sleep(1 * time.Millisecond)
case <-i.quitChannel:
i.running = false
}
}
i.log.Debug("Stopping")
@@ -175,7 +174,7 @@ func (i *Manager) SendResponse(response *ipcResponse) error {
// Shutdown is called when exiting the Application
func (i *Manager) Shutdown() {
i.log.Debug("Shutdown called")
i.running = false
i.quitChannel <- struct{}{}
i.log.Debug("Waiting of main loop shutdown")
i.wg.Wait()
}