mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 15:11:53 +08:00

* v1.10.1 * Fix vue template dependencies versions (fixes #574) (#576) * resolve angular routing broken when app is built * Revert "resolve angular routing broken when app is built" This reverts commite0aab7c27f
. * Update issue templates * v1.8.1 (#546) * resolve angular routing broken when app is built * Updated contributors * handle Set error on Update method * Remove incorrect build flag * v1.8.1-pre1 * added Get method * fixed return * implement gopath handling during cross compilation * update messages to output xgo version TODO: allow image override * use wailsapp/xgo:1.0.1 for cross-compiling * Support platform list in templates * Add warnings for windows builds * add fields Tags to ProjectOptions * add args tags to func BuildNative * add tags to func BuildDocker * delete escape tags * Update Contributors * feat: Vue3, Vue Router, Vuex, and Typescript Template * converted spaces to tabs in vue.config.js * single quotes and tabs Converted vue.config.js to using single quotes Converted example.spec.ts to tabs instead of spaces. * Added semicolons and mocha import * Update contributors * Make vue 3 template linux/mac only * Add tags to build * Add v2 artefacts * Update Vuetify in package.json (#537) * Update contributors * Replaced the old v-content tag with the new v-main (#536) * v1.8.1-pre4 * v1.8.1-pre5 * Update issue templates (#541) * Updated Contributors * Remove zero copy string conversion * v1.8.1-pre6 * Initial support for firebug (#543) * Initial support for firebug * Remove windows message * v1.8.1-pre7 * Update contributors * Allow use of custom HTML * Allow use of custom HTML (#545) * v1.8.1 Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.10.1 (#572) * fix dependencies versions Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.11.0-rc1 * v1.11.0-pre1 * Bump ini from 1.3.5 to 1.3.8 in /runtime/js/runtime (#575) * resolve angular routing broken when app is built * Revert "resolve angular routing broken when app is built" This reverts commite0aab7c27f
. * Update issue templates * v1.8.1 (#546) * resolve angular routing broken when app is built * Updated contributors * handle Set error on Update method * Remove incorrect build flag * v1.8.1-pre1 * added Get method * fixed return * implement gopath handling during cross compilation * update messages to output xgo version TODO: allow image override * use wailsapp/xgo:1.0.1 for cross-compiling * Support platform list in templates * Add warnings for windows builds * add fields Tags to ProjectOptions * add args tags to func BuildNative * add tags to func BuildDocker * delete escape tags * Update Contributors * feat: Vue3, Vue Router, Vuex, and Typescript Template * converted spaces to tabs in vue.config.js * single quotes and tabs Converted vue.config.js to using single quotes Converted example.spec.ts to tabs instead of spaces. * Added semicolons and mocha import * Update contributors * Make vue 3 template linux/mac only * Add tags to build * Add v2 artefacts * Update Vuetify in package.json (#537) * Update contributors * Replaced the old v-content tag with the new v-main (#536) * v1.8.1-pre4 * v1.8.1-pre5 * Update issue templates (#541) * Updated Contributors * Remove zero copy string conversion * v1.8.1-pre6 * Initial support for firebug (#543) * Initial support for firebug * Remove windows message * v1.8.1-pre7 * Update contributors * Allow use of custom HTML * Allow use of custom HTML (#545) * v1.8.1 Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.10.1 (#572) * Bump ini from 1.3.5 to 1.3.8 in /runtime/js/runtime Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ini from 1.3.5 to 1.3.8 in /runtime/js (#573) * resolve angular routing broken when app is built * Revert "resolve angular routing broken when app is built" This reverts commite0aab7c27f
. * Update issue templates * v1.8.1 (#546) * resolve angular routing broken when app is built * Updated contributors * handle Set error on Update method * Remove incorrect build flag * v1.8.1-pre1 * added Get method * fixed return * implement gopath handling during cross compilation * update messages to output xgo version TODO: allow image override * use wailsapp/xgo:1.0.1 for cross-compiling * Support platform list in templates * Add warnings for windows builds * add fields Tags to ProjectOptions * add args tags to func BuildNative * add tags to func BuildDocker * delete escape tags * Update Contributors * feat: Vue3, Vue Router, Vuex, and Typescript Template * converted spaces to tabs in vue.config.js * single quotes and tabs Converted vue.config.js to using single quotes Converted example.spec.ts to tabs instead of spaces. * Added semicolons and mocha import * Update contributors * Make vue 3 template linux/mac only * Add tags to build * Add v2 artefacts * Update Vuetify in package.json (#537) * Update contributors * Replaced the old v-content tag with the new v-main (#536) * v1.8.1-pre4 * v1.8.1-pre5 * Update issue templates (#541) * Updated Contributors * Remove zero copy string conversion * v1.8.1-pre6 * Initial support for firebug (#543) * Initial support for firebug * Remove windows message * v1.8.1-pre7 * Update contributors * Allow use of custom HTML * Allow use of custom HTML (#545) * v1.8.1 Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.10.1 (#572) * Bump ini from 1.3.5 to 1.3.8 in /runtime/js Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove debug info * v1.11.0-pre2 * Limit v1 updates to v1 * v1.11.0-pre3 * Test fix for linux high CPU usage * v1.11.0 * Add Pace to Thanks * Remove spec option in babel config (#593) * v1.12.0-pre1 * Update Contributors * Expose Once and OnMultiple * v1.12.0-pre2 * Fix potential nil conditions in webview * Fix issue with expired listeners * v1.12.0-pre3 * Don't manipulate listeners array when expired * add support for crux linux (#581) * Add support for Crux Linux (http://crux.nu) * Update linuxdb.yaml fix typo * Update linux.go fixed comment typo * Update linuxdb.yaml fixed more typos Co-authored-by: Lea Anthony <lea.anthony@gmail.com> * v1.12.0-pre4 * Update contributors * Put main window into focus after a dialog closes (#609) * v1.11.0 (#582) * v1.10.1 * Fix vue template dependencies versions (fixes #574) (#576) * resolve angular routing broken when app is built * Revert "resolve angular routing broken when app is built" This reverts commite0aab7c27f
. * Update issue templates * v1.8.1 (#546) * resolve angular routing broken when app is built * Updated contributors * handle Set error on Update method * Remove incorrect build flag * v1.8.1-pre1 * added Get method * fixed return * implement gopath handling during cross compilation * update messages to output xgo version TODO: allow image override * use wailsapp/xgo:1.0.1 for cross-compiling * Support platform list in templates * Add warnings for windows builds * add fields Tags to ProjectOptions * add args tags to func BuildNative * add tags to func BuildDocker * delete escape tags * Update Contributors * feat: Vue3, Vue Router, Vuex, and Typescript Template * converted spaces to tabs in vue.config.js * single quotes and tabs Converted vue.config.js to using single quotes Converted example.spec.ts to tabs instead of spaces. * Added semicolons and mocha import * Update contributors * Make vue 3 template linux/mac only * Add tags to build * Add v2 artefacts * Update Vuetify in package.json (#537) * Update contributors * Replaced the old v-content tag with the new v-main (#536) * v1.8.1-pre4 * v1.8.1-pre5 * Update issue templates (#541) * Updated Contributors * Remove zero copy string conversion * v1.8.1-pre6 * Initial support for firebug (#543) * Initial support for firebug * Remove windows message * v1.8.1-pre7 * Update contributors * Allow use of custom HTML * Allow use of custom HTML (#545) * v1.8.1 Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.10.1 (#572) * fix dependencies versions Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.11.0-rc1 * v1.11.0-pre1 * Bump ini from 1.3.5 to 1.3.8 in /runtime/js/runtime (#575) * resolve angular routing broken when app is built * Revert "resolve angular routing broken when app is built" This reverts commite0aab7c27f
. * Update issue templates * v1.8.1 (#546) * resolve angular routing broken when app is built * Updated contributors * handle Set error on Update method * Remove incorrect build flag * v1.8.1-pre1 * added Get method * fixed return * implement gopath handling during cross compilation * update messages to output xgo version TODO: allow image override * use wailsapp/xgo:1.0.1 for cross-compiling * Support platform list in templates * Add warnings for windows builds * add fields Tags to ProjectOptions * add args tags to func BuildNative * add tags to func BuildDocker * delete escape tags * Update Contributors * feat: Vue3, Vue Router, Vuex, and Typescript Template * converted spaces to tabs in vue.config.js * single quotes and tabs Converted vue.config.js to using single quotes Converted example.spec.ts to tabs instead of spaces. * Added semicolons and mocha import * Update contributors * Make vue 3 template linux/mac only * Add tags to build * Add v2 artefacts * Update Vuetify in package.json (#537) * Update contributors * Replaced the old v-content tag with the new v-main (#536) * v1.8.1-pre4 * v1.8.1-pre5 * Update issue templates (#541) * Updated Contributors * Remove zero copy string conversion * v1.8.1-pre6 * Initial support for firebug (#543) * Initial support for firebug * Remove windows message * v1.8.1-pre7 * Update contributors * Allow use of custom HTML * Allow use of custom HTML (#545) * v1.8.1 Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.10.1 (#572) * Bump ini from 1.3.5 to 1.3.8 in /runtime/js/runtime Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ini from 1.3.5 to 1.3.8 in /runtime/js (#573) * resolve angular routing broken when app is built * Revert "resolve angular routing broken when app is built" This reverts commite0aab7c27f
. * Update issue templates * v1.8.1 (#546) * resolve angular routing broken when app is built * Updated contributors * handle Set error on Update method * Remove incorrect build flag * v1.8.1-pre1 * added Get method * fixed return * implement gopath handling during cross compilation * update messages to output xgo version TODO: allow image override * use wailsapp/xgo:1.0.1 for cross-compiling * Support platform list in templates * Add warnings for windows builds * add fields Tags to ProjectOptions * add args tags to func BuildNative * add tags to func BuildDocker * delete escape tags * Update Contributors * feat: Vue3, Vue Router, Vuex, and Typescript Template * converted spaces to tabs in vue.config.js * single quotes and tabs Converted vue.config.js to using single quotes Converted example.spec.ts to tabs instead of spaces. * Added semicolons and mocha import * Update contributors * Make vue 3 template linux/mac only * Add tags to build * Add v2 artefacts * Update Vuetify in package.json (#537) * Update contributors * Replaced the old v-content tag with the new v-main (#536) * v1.8.1-pre4 * v1.8.1-pre5 * Update issue templates (#541) * Updated Contributors * Remove zero copy string conversion * v1.8.1-pre6 * Initial support for firebug (#543) * Initial support for firebug * Remove windows message * v1.8.1-pre7 * Update contributors * Allow use of custom HTML * Allow use of custom HTML (#545) * v1.8.1 Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> * v1.10.1 (#572) * Bump ini from 1.3.5 to 1.3.8 in /runtime/js Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove debug info * v1.11.0-pre2 * Limit v1 updates to v1 * v1.11.0-pre3 * Test fix for linux high CPU usage * v1.11.0 Co-authored-by: Elie Grenon (DrunkenPoney) <elie.grenon.1@gmail.com> Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add Pace to Thanks * Redo thanks section * Put main window into focus after dialogs close * Update CONTRIBUTORS.md * v1.12.0-pre5 * update scripts/build.sh to run test only on v1 * fix: typo in comment (#627) * feat(cli): use gitconfig name as name prompt default value * Add hi019 to CONTRIBUTORS * v1.12.0-pre6 * v1.12.0 * fix(cli): use npm run serve as serve command in all templates (#635) * Fix typo in webview.h * v1.12.1 Co-authored-by: Elie Grenon (DrunkenPoney) <elie.grenon.1@gmail.com> Co-authored-by: Arthur Wiebe <arthur@artooro.com> Co-authored-by: Ilgıt Yıldırım <ilgit.yildirim@triplebits.com> Co-authored-by: Travis McLane <tmclane@gmail.com> Co-authored-by: Altynbek <go.gelleson@gmail.com> Co-authored-by: Kyle Muchmore <kyle.muchmore@kickview.com> Co-authored-by: Balakrishna Prasad Ganne <balkripra.1996@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sophie Au <SophieAu@users.noreply.github.com> Co-authored-by: Alexander Matviychuk <githubcom@huskmail.com> Co-authored-by: RH12503 <48951973+RH12503@users.noreply.github.com> Co-authored-by: hi019 <65871571+hi019@users.noreply.github.com>
317 lines
8.8 KiB
Go
317 lines
8.8 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"net/url"
|
|
"os"
|
|
"runtime"
|
|
"strings"
|
|
|
|
"github.com/pkg/browser"
|
|
)
|
|
|
|
// LinuxDistribution is of type int
|
|
type LinuxDistribution int
|
|
|
|
const (
|
|
// Unknown is the catch-all distro
|
|
Unknown LinuxDistribution = iota
|
|
// Debian distribution
|
|
Debian
|
|
// Ubuntu distribution
|
|
Ubuntu
|
|
// Arch linux distribution
|
|
Arch
|
|
// CentOS linux distribution
|
|
CentOS
|
|
// Fedora linux distribution
|
|
Fedora
|
|
// Gentoo distribution
|
|
Gentoo
|
|
// Zorin distribution
|
|
Zorin
|
|
// Parrot distribution
|
|
Parrot
|
|
// Linuxmint distribution
|
|
Linuxmint
|
|
// VoidLinux distribution
|
|
VoidLinux
|
|
// Elementary distribution
|
|
Elementary
|
|
// Kali distribution
|
|
Kali
|
|
// Neon distribution
|
|
Neon
|
|
// ArcoLinux distribution
|
|
ArcoLinux
|
|
// Manjaro distribution
|
|
Manjaro
|
|
// ManjaroARM distribution
|
|
ManjaroARM
|
|
// Deepin distribution
|
|
Deepin
|
|
// Raspbian distribution
|
|
Raspbian
|
|
// Tumbleweed (OpenSUSE) distribution
|
|
Tumbleweed
|
|
// Leap (OpenSUSE) distribution
|
|
Leap
|
|
// ArchLabs distribution
|
|
ArchLabs
|
|
// PopOS distribution
|
|
PopOS
|
|
// Solus distribution
|
|
Solus
|
|
// Ctlos Linux distribution
|
|
Ctlos
|
|
// EndeavourOS linux distribution
|
|
EndeavourOS
|
|
// Crux linux distribution
|
|
Crux
|
|
)
|
|
|
|
// DistroInfo contains all the information relating to a linux distribution
|
|
type DistroInfo struct {
|
|
Distribution LinuxDistribution
|
|
Name string
|
|
ID string
|
|
Description string
|
|
Release string
|
|
}
|
|
|
|
// GetLinuxDistroInfo returns information about the running linux distribution
|
|
func GetLinuxDistroInfo() *DistroInfo {
|
|
result := &DistroInfo{
|
|
Distribution: Unknown,
|
|
ID: "unknown",
|
|
Name: "Unknown",
|
|
}
|
|
_, err := os.Stat("/etc/os-release")
|
|
if !os.IsNotExist(err) {
|
|
osRelease, _ := ioutil.ReadFile("/etc/os-release")
|
|
result = parseOsRelease(string(osRelease))
|
|
}
|
|
return result
|
|
}
|
|
|
|
// parseOsRelease parses the given os-release data and returns
|
|
// a DistroInfo struct with the details
|
|
func parseOsRelease(osRelease string) *DistroInfo {
|
|
result := &DistroInfo{Distribution: Unknown}
|
|
|
|
// Default value
|
|
osID := "unknown"
|
|
osNAME := "Unknown"
|
|
version := ""
|
|
|
|
// Split into lines
|
|
lines := strings.Split(osRelease, "\n")
|
|
// Iterate lines
|
|
for _, line := range lines {
|
|
// Split each line by the equals char
|
|
splitLine := strings.SplitN(line, "=", 2)
|
|
// Check we have
|
|
if len(splitLine) != 2 {
|
|
continue
|
|
}
|
|
switch splitLine[0] {
|
|
case "ID":
|
|
osID = strings.ToLower(strings.Trim(splitLine[1], "\""))
|
|
case "NAME":
|
|
osNAME = strings.Trim(splitLine[1], "\"")
|
|
case "VERSION_ID":
|
|
version = strings.Trim(splitLine[1], "\"")
|
|
}
|
|
}
|
|
|
|
// Check distro name against list of distros
|
|
switch osID {
|
|
case "fedora":
|
|
result.Distribution = Fedora
|
|
case "centos":
|
|
result.Distribution = CentOS
|
|
case "arch":
|
|
result.Distribution = Arch
|
|
case "archlabs":
|
|
result.Distribution = ArchLabs
|
|
case "ctlos":
|
|
result.Distribution = Ctlos
|
|
case "debian":
|
|
result.Distribution = Debian
|
|
case "ubuntu":
|
|
result.Distribution = Ubuntu
|
|
case "gentoo":
|
|
result.Distribution = Gentoo
|
|
case "zorin":
|
|
result.Distribution = Zorin
|
|
case "parrot":
|
|
result.Distribution = Parrot
|
|
case "linuxmint":
|
|
result.Distribution = Linuxmint
|
|
case "void":
|
|
result.Distribution = VoidLinux
|
|
case "elementary":
|
|
result.Distribution = Elementary
|
|
case "kali":
|
|
result.Distribution = Kali
|
|
case "neon":
|
|
result.Distribution = Neon
|
|
case "arcolinux":
|
|
result.Distribution = ArcoLinux
|
|
case "manjaro":
|
|
result.Distribution = Manjaro
|
|
case "manjaro-arm":
|
|
result.Distribution = ManjaroARM
|
|
case "deepin":
|
|
result.Distribution = Deepin
|
|
case "raspbian":
|
|
result.Distribution = Raspbian
|
|
case "opensuse-tumbleweed":
|
|
result.Distribution = Tumbleweed
|
|
case "opensuse-leap":
|
|
result.Distribution = Leap
|
|
case "pop":
|
|
result.Distribution = PopOS
|
|
case "solus":
|
|
result.Distribution = Solus
|
|
case "endeavouros":
|
|
result.Distribution = EndeavourOS
|
|
case "crux":
|
|
result.Distribution = Crux
|
|
default:
|
|
result.Distribution = Unknown
|
|
}
|
|
|
|
result.Name = osNAME
|
|
result.ID = osID
|
|
result.Release = version
|
|
|
|
return result
|
|
}
|
|
|
|
// CheckPkgInstalled is all functions that use local programs to see if a package is installed
|
|
type CheckPkgInstalled func(string) (bool, error)
|
|
|
|
// EqueryInstalled uses equery to see if a package is installed
|
|
func EqueryInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
equery := program.FindProgram("equery")
|
|
if equery == nil {
|
|
return false, fmt.Errorf("cannont check dependencies: equery not found")
|
|
}
|
|
_, _, exitCode, _ := equery.Run("l", packageName)
|
|
return exitCode == 0, nil
|
|
}
|
|
|
|
// DpkgInstalled uses dpkg to see if a package is installed
|
|
func DpkgInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
dpkg := program.FindProgram("dpkg")
|
|
if dpkg == nil {
|
|
return false, fmt.Errorf("cannot check dependencies: dpkg not found")
|
|
}
|
|
_, _, exitCode, _ := dpkg.Run("-L", packageName)
|
|
return exitCode == 0, nil
|
|
}
|
|
|
|
// EOpkgInstalled uses dpkg to see if a package is installed
|
|
func EOpkgInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
eopkg := program.FindProgram("eopkg")
|
|
if eopkg == nil {
|
|
return false, fmt.Errorf("cannot check dependencies: eopkg not found")
|
|
}
|
|
stdout, _, _, _ := eopkg.Run("info", packageName)
|
|
return strings.HasPrefix(stdout, "Installed"), nil
|
|
}
|
|
|
|
// PacmanInstalled uses pacman to see if a package is installed.
|
|
func PacmanInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
pacman := program.FindProgram("pacman")
|
|
if pacman == nil {
|
|
return false, fmt.Errorf("cannot check dependencies: pacman not found")
|
|
}
|
|
_, _, exitCode, _ := pacman.Run("-Qs", packageName)
|
|
return exitCode == 0, nil
|
|
}
|
|
|
|
// XbpsInstalled uses pacman to see if a package is installed.
|
|
func XbpsInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
xbpsQuery := program.FindProgram("xbps-query")
|
|
if xbpsQuery == nil {
|
|
return false, fmt.Errorf("cannot check dependencies: xbps-query not found")
|
|
}
|
|
_, _, exitCode, _ := xbpsQuery.Run("-S", packageName)
|
|
return exitCode == 0, nil
|
|
}
|
|
|
|
// RpmInstalled uses rpm to see if a package is installed
|
|
func RpmInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
rpm := program.FindProgram("rpm")
|
|
if rpm == nil {
|
|
return false, fmt.Errorf("cannot check dependencies: rpm not found")
|
|
}
|
|
_, _, exitCode, _ := rpm.Run("--query", packageName)
|
|
return exitCode == 0, nil
|
|
}
|
|
|
|
// PrtGetInstalled uses prt-get to see if a package is installed
|
|
func PrtGetInstalled(packageName string) (bool, error) {
|
|
program := NewProgramHelper()
|
|
prtget := program.FindProgram("prt-get")
|
|
if prtget == nil {
|
|
return false, fmt.Errorf("cannot check dependencies: prt-get not found")
|
|
}
|
|
_, _, exitCode, _ := prtget.Run("isinst", packageName)
|
|
return exitCode == 0, nil
|
|
}
|
|
|
|
// RequestSupportForDistribution promts the user to submit a request to support their
|
|
// currently unsupported distribution
|
|
func RequestSupportForDistribution(distroInfo *DistroInfo) error {
|
|
var logger = NewLogger()
|
|
defaultError := fmt.Errorf("unable to check libraries on distribution '%s'", distroInfo.Name)
|
|
|
|
logger.Yellow("Distribution '%s' is not currently supported, but we would love to!", distroInfo.Name)
|
|
q := fmt.Sprintf("Would you like to submit a request to support distribution '%s'?", distroInfo.Name)
|
|
result := Prompt(q, "yes")
|
|
if strings.ToLower(result) != "yes" {
|
|
return defaultError
|
|
}
|
|
|
|
title := fmt.Sprintf("Support Distribution '%s'", distroInfo.Name)
|
|
|
|
var str strings.Builder
|
|
|
|
gomodule, exists := os.LookupEnv("GO111MODULE")
|
|
if !exists {
|
|
gomodule = "(Not Set)"
|
|
}
|
|
|
|
str.WriteString("\n| Name | Value |\n| ----- | ----- |\n")
|
|
str.WriteString(fmt.Sprintf("| Wails Version | %s |\n", Version))
|
|
str.WriteString(fmt.Sprintf("| Go Version | %s |\n", runtime.Version()))
|
|
str.WriteString(fmt.Sprintf("| Platform | %s |\n", runtime.GOOS))
|
|
str.WriteString(fmt.Sprintf("| Arch | %s |\n", runtime.GOARCH))
|
|
str.WriteString(fmt.Sprintf("| GO111MODULE | %s |\n", gomodule))
|
|
str.WriteString(fmt.Sprintf("| Distribution ID | %s |\n", distroInfo.ID))
|
|
str.WriteString(fmt.Sprintf("| Distribution Name | %s |\n", distroInfo.Name))
|
|
str.WriteString(fmt.Sprintf("| Distribution Version | %s |\n", distroInfo.Release))
|
|
|
|
body := fmt.Sprintf("**Description**\nDistribution '%s' is currently unsupported.\n\n**Further Information**\n\n%s\n\n*Please add any extra information here, EG: libraries that are needed to make the distribution work, or commands to install them*", distroInfo.ID, str.String())
|
|
fullURL := "https://github.com/wailsapp/wails/issues/new?"
|
|
params := "title=" + title + "&body=" + body
|
|
|
|
fmt.Println("Opening browser to file request.")
|
|
browser.OpenURL(fullURL + url.PathEscape(params))
|
|
result = Prompt("We have a guide for adding support for your distribution. Would you like to view it?", "yes")
|
|
if strings.ToLower(result) == "yes" {
|
|
browser.OpenURL("https://wails.app/guides/distro/")
|
|
}
|
|
return nil
|
|
}
|