From 453fac784d47e78255141220b245087da91390d1 Mon Sep 17 00:00:00 2001
From: Vishesh Handa <me@vhanda.in>
Date: Sun, 31 May 2020 09:07:29 +0200
Subject: [PATCH] Add hover code

This way the app can be built for desktop platforms. There is still a
lot of work to do in order to get it to work, but this is a start.

Related to #137
---
 go/.gitignore                              |   3 +
 go/assets/icon.png                         | Bin 0 -> 4044 bytes
 go/cmd/import-image_picker-plugin.go       |  13 ++++
 go/cmd/import-package_info-plugin.go       |  13 ++++
 go/cmd/import-path_provider-plugin.go      |  16 +++++
 go/cmd/import-shared_preferences-plugin.go |  16 +++++
 go/cmd/import-url_launcher-plugin.go       |  13 ++++
 go/cmd/main.go                             |  49 +++++++++++++
 go/cmd/options.go                          |   9 +++
 go/go.mod                                  |  13 ++++
 go/go.sum                                  |  77 +++++++++++++++++++++
 go/hover.yaml                              |   7 ++
 12 files changed, 229 insertions(+)
 create mode 100644 go/.gitignore
 create mode 100644 go/assets/icon.png
 create mode 100644 go/cmd/import-image_picker-plugin.go
 create mode 100644 go/cmd/import-package_info-plugin.go
 create mode 100644 go/cmd/import-path_provider-plugin.go
 create mode 100644 go/cmd/import-shared_preferences-plugin.go
 create mode 100644 go/cmd/import-url_launcher-plugin.go
 create mode 100644 go/cmd/main.go
 create mode 100644 go/cmd/options.go
 create mode 100644 go/go.mod
 create mode 100644 go/go.sum
 create mode 100644 go/hover.yaml

diff --git a/go/.gitignore b/go/.gitignore
new file mode 100644
index 00000000..fd0e2eb6
--- /dev/null
+++ b/go/.gitignore
@@ -0,0 +1,3 @@
+build
+.last_goflutter_check
+.last_go-flutter_check
diff --git a/go/assets/icon.png b/go/assets/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4dfc8dea6f5d1e8cbcb7ef347dcbc814163b880
GIT binary patch
literal 4044
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
M<+rx<o2aAz1Xv|zF8}}l

literal 0
HcmV?d00001

diff --git a/go/cmd/import-image_picker-plugin.go b/go/cmd/import-image_picker-plugin.go
new file mode 100644
index 00000000..f15bd741
--- /dev/null
+++ b/go/cmd/import-image_picker-plugin.go
@@ -0,0 +1,13 @@
+package main
+
+// DO NOT EDIT, this file is generated by hover at compile-time for the image_picker plugin.
+
+import (
+	flutter "github.com/go-flutter-desktop/go-flutter"
+	image_picker "github.com/go-flutter-desktop/plugins/image_picker"
+)
+
+func init() {
+	// Only the init function can be tweaked by plugin maker.
+	options = append(options, flutter.AddPlugin(&image_picker.ImagePickerPlugin{}))
+}
diff --git a/go/cmd/import-package_info-plugin.go b/go/cmd/import-package_info-plugin.go
new file mode 100644
index 00000000..9d657fa0
--- /dev/null
+++ b/go/cmd/import-package_info-plugin.go
@@ -0,0 +1,13 @@
+package main
+
+// DO NOT EDIT, this file is generated by hover at compile-time for the package_info plugin.
+
+import (
+	flutter "github.com/go-flutter-desktop/go-flutter"
+	package_info "github.com/go-flutter-desktop/plugins/package_info"
+)
+
+func init() {
+	// Only the init function can be tweaked by plugin maker.
+	options = append(options, flutter.AddPlugin(&package_info.PackageInfoPlugin{}))
+}
diff --git a/go/cmd/import-path_provider-plugin.go b/go/cmd/import-path_provider-plugin.go
new file mode 100644
index 00000000..fac0d403
--- /dev/null
+++ b/go/cmd/import-path_provider-plugin.go
@@ -0,0 +1,16 @@
+package main
+
+// DO NOT EDIT, this file is generated by hover at compile-time for the path_provider plugin.
+
+import (
+	flutter "github.com/go-flutter-desktop/go-flutter"
+	path_provider "github.com/go-flutter-desktop/plugins/path_provider"
+)
+
+func init() {
+	// Only the init function can be tweaked by plugin maker.
+	options = append(options, flutter.AddPlugin(&path_provider.PathProviderPlugin{
+		VendorName:      flutter.ProjectOrganizationName,
+		ApplicationName: flutter.ProjectName,
+	}))
+}
diff --git a/go/cmd/import-shared_preferences-plugin.go b/go/cmd/import-shared_preferences-plugin.go
new file mode 100644
index 00000000..43eaddd6
--- /dev/null
+++ b/go/cmd/import-shared_preferences-plugin.go
@@ -0,0 +1,16 @@
+package main
+
+// DO NOT EDIT, this file is generated by hover at compile-time for the shared_preferences plugin.
+
+import (
+	flutter "github.com/go-flutter-desktop/go-flutter"
+	shared_preferences "github.com/go-flutter-desktop/plugins/shared_preferences"
+)
+
+func init() {
+	// Only the init function can be tweaked by plugin maker.
+	options = append(options, flutter.AddPlugin(&shared_preferences.SharedPreferencesPlugin{
+		VendorName:      flutter.ProjectOrganizationName,
+		ApplicationName: flutter.ProjectName,
+	}))
+}
diff --git a/go/cmd/import-url_launcher-plugin.go b/go/cmd/import-url_launcher-plugin.go
new file mode 100644
index 00000000..8727cdb8
--- /dev/null
+++ b/go/cmd/import-url_launcher-plugin.go
@@ -0,0 +1,13 @@
+package main
+
+// DO NOT EDIT, this file is generated by hover at compile-time for the url_launcher plugin.
+
+import (
+	flutter "github.com/go-flutter-desktop/go-flutter"
+	url_launcher "github.com/go-flutter-desktop/plugins/url_launcher"
+)
+
+func init() {
+	// Only the init function can be tweaked by plugin maker.
+	options = append(options, flutter.AddPlugin(&url_launcher.UrlLauncherPlugin{}))
+}
diff --git a/go/cmd/main.go b/go/cmd/main.go
new file mode 100644
index 00000000..10e3b09d
--- /dev/null
+++ b/go/cmd/main.go
@@ -0,0 +1,49 @@
+package main
+
+import (
+	"fmt"
+	"image"
+	_ "image/png"
+	"os"
+	"path/filepath"
+	"strings"
+
+	"github.com/go-flutter-desktop/go-flutter"
+	"github.com/pkg/errors"
+)
+
+// vmArguments may be set by hover at compile-time
+var vmArguments string
+
+func main() {
+	// DO NOT EDIT, add options in options.go
+	mainOptions := []flutter.Option{
+		flutter.OptionVMArguments(strings.Split(vmArguments, ";")),
+		flutter.WindowIcon(iconProvider),
+	}
+	err := flutter.Run(append(options, mainOptions...)...)
+	if err != nil {
+		fmt.Println(err)
+		os.Exit(1)
+	}
+}
+
+func iconProvider() ([]image.Image, error) {
+	execPath, err := os.Executable()
+	if err != nil {
+		return nil, errors.Wrap(err, "failed to resolve executable path")
+	}
+	execPath, err = filepath.EvalSymlinks(execPath)
+	if err != nil {
+		return nil, errors.Wrap(err, "failed to eval symlinks for executable path")
+	}
+	imgFile, err := os.Open(filepath.Join(filepath.Dir(execPath), "assets", "icon.png"))
+	if err != nil {
+		return nil, errors.Wrap(err, "failed to open assets/icon.png")
+	}
+	img, _, err := image.Decode(imgFile)
+	if err != nil {
+		return nil, errors.Wrap(err, "failed to decode image")
+	}
+	return []image.Image{img}, nil
+}
diff --git a/go/cmd/options.go b/go/cmd/options.go
new file mode 100644
index 00000000..dc908387
--- /dev/null
+++ b/go/cmd/options.go
@@ -0,0 +1,9 @@
+package main
+
+import (
+	"github.com/go-flutter-desktop/go-flutter"
+)
+
+var options = []flutter.Option{
+	flutter.WindowInitialDimensions(800, 1280),
+}
diff --git a/go/go.mod b/go/go.mod
new file mode 100644
index 00000000..6389638b
--- /dev/null
+++ b/go/go.mod
@@ -0,0 +1,13 @@
+module github.com/GitJournal/GitJournal/go
+
+go 1.13
+
+require (
+	github.com/go-flutter-desktop/go-flutter v0.41.0
+	github.com/go-flutter-desktop/plugins/image_picker v0.1.5
+	github.com/go-flutter-desktop/plugins/package_info v0.0.0-20200525155813-01ec2ef9f118
+	github.com/go-flutter-desktop/plugins/path_provider v0.4.0
+	github.com/go-flutter-desktop/plugins/shared_preferences v0.4.3
+	github.com/go-flutter-desktop/plugins/url_launcher v0.1.2
+	github.com/pkg/errors v0.9.1
+)
diff --git a/go/go.sum b/go/go.sum
new file mode 100644
index 00000000..c0e645b0
--- /dev/null
+++ b/go/go.sum
@@ -0,0 +1,77 @@
+github.com/Xuanwo/go-locale v0.2.0 h1:1N8SGG2VNpLl6VVa8ueZm3Nm+dxvk8ffY9aviKHl4IE=
+github.com/Xuanwo/go-locale v0.2.0/go.mod h1:6qbT9M726OJgyiGZro2YwPmx63wQzlH+VvtjJWQoftw=
+github.com/adrg/xdg v0.2.1 h1:VSVdnH7cQ7V+B33qSJHTCRlNgra1607Q8PzEmnvb2Ic=
+github.com/adrg/xdg v0.2.1/go.mod h1:ZuOshBmzV4Ta+s23hdfFZnBsdzmoR3US0d7ErpqSbTQ=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/go-flutter-desktop/go-flutter v0.30.0/go.mod h1:NCryd/AqiRbYSd8pMzQldYkgH1tZIFGt2ToUghZcWGA=
+github.com/go-flutter-desktop/go-flutter v0.37.0/go.mod h1:8tjt3yZ3lTNLqgzWeH90f1uhCR9BL68LFoiy/n0aw/w=
+github.com/go-flutter-desktop/go-flutter v0.41.0 h1:YzGy0+r0Haj9vdMckxyfqM0JOmj/2ONgow2Z9yVN//A=
+github.com/go-flutter-desktop/go-flutter v0.41.0/go.mod h1:VNXgUO61Nxa9y/5jHQJFFuWVK9oNQF56MPKPUgQXwlU=
+github.com/go-flutter-desktop/plugins v0.0.0-20200525155813-01ec2ef9f118 h1:xD8uXq0EZXXGVbqrCKWTIu69UJBJwAoVxCgetUg7+UE=
+github.com/go-flutter-desktop/plugins/image_picker v0.1.5 h1:VQza8aA+Els+trCLqNJa7phNJDBetLWVQMyzAIqYjts=
+github.com/go-flutter-desktop/plugins/image_picker v0.1.5/go.mod h1:lOmQKrMiJNsA55VM4ww3u78ufo//ptu2om+B3Ime+6o=
+github.com/go-flutter-desktop/plugins/package_info v0.0.0-20200525155813-01ec2ef9f118 h1:Bhikel50hc8xyCA/J8iJh6cOTyy8nR8fuRF8IbI4AAY=
+github.com/go-flutter-desktop/plugins/package_info v0.0.0-20200525155813-01ec2ef9f118/go.mod h1:By7bu3Rh1+rWVoPqWZVoFlNpQ85hwSgPSL8KCSt1edk=
+github.com/go-flutter-desktop/plugins/path_provider v0.4.0 h1:LhYqOJjwuRjf9MzmbvkejCtLqrEEeBzrsCWkVONG6uw=
+github.com/go-flutter-desktop/plugins/path_provider v0.4.0/go.mod h1:e0aUP0dqcGaw5EZpCYzlK7M/T6X0ueWYJXImrE25vb4=
+github.com/go-flutter-desktop/plugins/shared_preferences v0.4.3 h1:gFO2I08ll8frTDFrMQfscD4UqIHvFyxGk8xg2O+hPzI=
+github.com/go-flutter-desktop/plugins/shared_preferences v0.4.3/go.mod h1:NbG/ABFPBR5SNtZn3qCv4S6aQASMCbtTITraXRChpvI=
+github.com/go-flutter-desktop/plugins/url_launcher v0.1.2 h1:oFiIJjotMQvF8rfKWVJrf+1/JgTXShEIsibkiXrQnUw=
+github.com/go-flutter-desktop/plugins/url_launcher v0.1.2/go.mod h1:GYgRDaLDAJRYvaASQk8HEmI8YJurbZGW5VVDIMxwzBU=
+github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 h1:SCYMcCJ89LjRGwEa0tRluNRiMjZHalQZrVrvTbPh+qw=
+github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
+github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0=
+github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200420212212-258d9bec320e h1:8ywu4ELC/6owgOZlZx75CyYS5AYwUT2L+hzPModKvag=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200420212212-258d9bec320e/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
+github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
+github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
+github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/go/hover.yaml b/go/hover.yaml
new file mode 100644
index 00000000..ff464962
--- /dev/null
+++ b/go/hover.yaml
@@ -0,0 +1,7 @@
+application-name: "GitJournal"
+#executable-name: "gitjournal" # Uncomment to modify this value. Only lowercase a-z, numbers, underscores and no spaces
+#package-name: "gitjournal" # Uncomment to modify this value. Only lowercase a-z, numbers and no underscores or spaces
+license: "AGPL-3.0-or-later"
+target: lib/main.dart
+docker: false
+engine-version: "" # change to a engine version commit