Fix macos run mesh-ui plist RIVM-20

This commit is contained in:
Mihail Slobodyanuk 2022-12-12 14:51:07 +02:00
parent ec6e722c1c
commit e4fbc30ed3
2 changed files with 14 additions and 22 deletions

View file

@ -47,11 +47,16 @@ cp meshctl pkgbuild/root/usr/local/bin
cp mesh pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS cp mesh pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS
cp mesh-ui pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS cp mesh-ui pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS
cp riv.icns pkgbuild/root/Applications/RiV-mesh.app/Contents/Resources cp riv.icns pkgbuild/root/Applications/RiV-mesh.app/Contents/Resources
cp contrib/ui/mesh-ui/ui/index.html pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS cp -r contrib/ui/mesh-ui/ui pkgbuild/root/Applications/RiV-mesh.app/Contents/Resources
cp -r contrib/ui/mesh-ui/ui/assets pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS
cp -r contrib/ui/mesh-ui/ui/webfonts pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS
cp contrib/macos/mesh.plist pkgbuild/root/Library/LaunchDaemons cp contrib/macos/mesh.plist pkgbuild/root/Library/LaunchDaemons
# Create open script
cat > pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/open-mesh-ui << EOF
#!/bin/sh
/Applications/RiV-mesh.app/Contents/MacOS/mesh-ui /Applications/RiV-mesh.app/Contents/Resources/ui 1>/tmp/mesh-ui.stdout.log 2>/tmp/mesh-ui.stderr.log
EOF
# Create the postinstall script # Create the postinstall script
cat > pkgbuild/scripts/postinstall << EOF cat > pkgbuild/scripts/postinstall << EOF
#!/bin/sh #!/bin/sh
@ -82,7 +87,7 @@ chmod 755 pkgbuild/scripts/postinstall
chmod 755 pkgbuild/root/usr/local/bin/meshctl chmod 755 pkgbuild/root/usr/local/bin/meshctl
chmod 755 pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/mesh chmod 755 pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/mesh
chmod 755 pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/mesh-ui chmod 755 pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/mesh-ui
chmod 755 pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/index.html chmod 755 pkgbuild/root/Applications/RiV-mesh.app/Contents/MacOS/open-mesh-ui
# Work out metadata for the package info # Work out metadata for the package info
PKGNAME=$(sh contrib/semver/name.sh) PKGNAME=$(sh contrib/semver/name.sh)
@ -115,13 +120,9 @@ cat > pkgbuild/root/Applications/RiV-mesh.app/Contents/Info.plist << EOF
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>${PKGVERSION}</string> <string>${PKGVERSION}</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>mesh-ui</string> <string>open-mesh-ui</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>io.github.RiV-mesh.pkg</string> <string>io.github.RiV-mesh.pkg</string>
<key>StandardOutPath</key>
<string>/tmp/mesh-ui.stdout.log</string>
<key>StandardErrorPath</key>
<string>/tmp/mesh-ui.stderr.log</string>
</dict> </dict>
</plist> </plist>
EOF EOF

View file

@ -96,26 +96,17 @@ func main() {
if confui.IndexHtml == "" { if confui.IndexHtml == "" {
confui.IndexHtml = "index.html" confui.IndexHtml = "index.html"
} }
f, err := os.Create("/tmp/mesh-ui.log")
if err != nil {
defer f.Close()
}
var nopanic = func(err error) {
if f != nil {
fmt.Fprint(f, err.Error())
}
}
//Check is it URL already //Check is it URL already
indexUrl, err := url.ParseRequestURI(confui.IndexHtml) indexUrl, err := url.ParseRequestURI(confui.IndexHtml)
if err != nil || len(indexUrl.Scheme) < 2 { // handling no scheme at all and windows c:\ as scheme detection if err != nil || len(indexUrl.Scheme) < 2 { // handling no scheme at all and windows c:\ as scheme detection
confui.IndexHtml, err = filepath.Abs(confui.IndexHtml) confui.IndexHtml, err = filepath.Abs(confui.IndexHtml)
if err != nil { if err != nil {
nopanic(errors.New("Index file not found: " + err.Error())) panic(errors.New("Index file not found: " + err.Error()))
} }
if stat, err := os.Stat(confui.IndexHtml); err != nil { if stat, err := os.Stat(confui.IndexHtml); err != nil {
nopanic(errors.New(fmt.Sprintf("Index file %v not found or permissians denied: %v", confui.IndexHtml, err.Error()))) panic(errors.New(fmt.Sprintf("Index file %v not found or permissians denied: %v", confui.IndexHtml, err.Error())))
} else if stat.IsDir() { } else if stat.IsDir() {
nopanic(errors.New(fmt.Sprintf("Index file %v not found", confui.IndexHtml))) panic(errors.New(fmt.Sprintf("Index file %v not found", confui.IndexHtml)))
} }
path_prefix := "" path_prefix := ""
if indexUrl != nil && len(indexUrl.Scheme) == 1 { if indexUrl != nil && len(indexUrl.Scheme) == 1 {
@ -123,7 +114,7 @@ func main() {
} }
indexUrl, err = url.ParseRequestURI("file://" + path_prefix + strings.ReplaceAll(confui.IndexHtml, "\\", "/")) indexUrl, err = url.ParseRequestURI("file://" + path_prefix + strings.ReplaceAll(confui.IndexHtml, "\\", "/"))
if err != nil { if err != nil {
nopanic(errors.New("Index file URL parse error: " + err.Error())) panic(errors.New("Index file URL parse error: " + err.Error()))
} }
} }