]> git.lizzy.rs Git - micro.git/blob - tools/info-plist.go
Only run info plist on darwin
[micro.git] / tools / info-plist.go
1 //go:build ignore
2 // +build ignore
3
4 package main
5
6 import (
7         "fmt"
8         "io/ioutil"
9         "os"
10         "runtime"
11 )
12
13 func check(e error) {
14         if e != nil {
15                 panic(e)
16         }
17 }
18
19 func main() {
20         if runtime.GOOS != "darwin" {
21                 return
22         }
23         if len(os.Args) == 3 {
24                 if os.Args[1] == "darwin" && runtime.GOOS == "darwin" {
25                         rawInfoPlistString := `<?xml version="1.0" encoding="UTF-8"?>
26         <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
27         <plist version="1.0">
28         <dict>
29                 <key>CFBundleIdentifier</key>
30                 <string>io.github.micro-editor</string>
31                 <key>CFBundleName</key>
32                 <string>micro</string>
33                 <key>CFBundleInfoDictionaryVersion</key>
34                 <string>6.0</string>
35                 <key>CFBundlePackageType</key>
36                 <string>APPL</string>
37                 <key>CFBundleShortVersionString</key>
38                 <string>` + os.Args[2] + `</string>
39         </dict>
40         </plist>
41         `
42                         infoPlistData := []byte(rawInfoPlistString)
43
44                         err := ioutil.WriteFile("/tmp/micro-info.plist", infoPlistData, 0644)
45                         check(err)
46                         fmt.Println("-linkmode external -extldflags -Wl,-sectcreate,__TEXT,__info_plist,/tmp/micro-info.plist")
47                 }
48         } else {
49                 panic("missing arguments")
50         }
51 }