giffer

Create .gif images from sites like youtube.com
Log | Files | Refs | LICENSE

commit 099671100a952dd2df0cc266aba57c9386ae6740
parent 9c31647f1afb84c2c640c9a952dde7ceccf740d8
Author: Jack Mordaunt <jackmordaunt@gmail.com>
Date:   Mon, 19 Nov 2018 22:58:49 +1300

[~] Use wrapper script to provide environment, pass arguments, etc.

Diffstat:
Mcmd/build/main.go | 74+++++++++++++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 43 insertions(+), 31 deletions(-)

diff --git a/cmd/build/main.go b/cmd/build/main.go @@ -29,40 +29,30 @@ const plist = ` <plist version="1.0"> <dict> <key>CFBundleExecutable</key> - <string>giffer</string> + <string>giffer.sh</string> <key>CFBundleIconFile</key> - <string>icon.icns</string> + <string>icon.icns</string> <key>CFBundleIdentifier</key> - <string>com.jackmordaunt.giffer</string> + <string>com.jackmordaunt.giffer</string> <key>NSHighResolutionCapable</key> - <true/> - <key>NSSupportsAutomaticGraphicsSwitching</key> - <true/> + <true/> <key>NSAppTransportSecurity</key> - <dict> - <key>NSExceptionDomains</key> <dict> - <key>localhost</key> - <dict> - <key>NSExceptionAllowsInsecureHTTPLoads</key> - <true/> - <key>NSIncludesSubdomains</key> - <true/> - </dict> + <key>NSExceptionDomains</key> + <dict> + <key>localhost</key> + <dict> + <key>NSExceptionAllowsInsecureHTTPLoads</key> + <true/> + <key>NSIncludesSubdomains</key> + <true/> + </dict> + </dict> </dict> - </dict> </dict> </plist> ` -// <key>ProgramArguments</key> -// <array> -// <string>giffer</string> -// <string>-v</string> -// <string>-ffmpeg</string> -// <string>Resources/ffmpeg</string> -// </array> - var ( dist string tags string @@ -81,14 +71,13 @@ func init() { func main() { if runtime.GOOS == "darwin" { var ( - contents = filepath.Join(dist, "Giffer.app", "Contents") - macos = filepath.Join(dist, "Giffer.app", "Contents", "MacOS") - resources = filepath.Join(dist, "Giffer.app", "Contents", "Resources") - info = filepath.Join(dist, "Giffer.app", "Contents", "Info.plist") - iconf = filepath.Join(dist, "Giffer.app", "Contents", "Resources", "icon.icns") - frameworks = filepath.Join(dist, "Giffer.app", "Contents", "Frameworks") + contents = filepath.Join(dist, "Giffer.app", "Contents") + macos = filepath.Join(dist, "Giffer.app", "Contents", "MacOS") + resources = filepath.Join(dist, "Giffer.app", "Contents", "Resources") + info = filepath.Join(dist, "Giffer.app", "Contents", "Info.plist") + iconf = filepath.Join(dist, "Giffer.app", "Contents", "Resources", "icon.icns") ) - for _, dir := range []string{contents, macos, resources, frameworks} { + for _, dir := range []string{contents, macos, resources} { if err := os.MkdirAll(dir, 0755); err != nil && !os.IsExist(err) { log.Fatalf("preparing directory: %v", err) } @@ -118,6 +107,29 @@ func main() { if out, err := cmd.CombinedOutput(); err != nil { return errors.Wrap(err, string(out)) } + buf := make([]byte, 64) + binary.LittleEndian.PutUint64(buf, h) + return ioutil.WriteFile(checksumFile, buf, 0644) + }, + }, + Task{ + Name: "write wrapper script", + Op: func() error { + wrapper := strings.Join([]string{ + "#!/usr/bin/env bash\n", + "DIR=$(cd \"$(dirname \"$0\")\"; pwd)\n", + "$DIR/giffer ", + "-v ", + "-ffmpeg $DIR/../Resources/ffmpeg ", + "-log $DIR/../giffer.log ", + }, "") + name := filepath.Join(macos, "giffer.sh") + if err := ioutil.WriteFile(name, []byte(wrapper), 0777); err != nil { + return errors.Wrap(err, "writing wrapper file") + } + if out, err := exec.Command("chmod", "+x", name).CombinedOutput(); err != nil { + return errors.Wrap(err, string(out)) + } return nil }, },