From b28ab88773134772546c6ec8a65881d9fd5f2229 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Tue, 29 Jun 2021 01:59:58 +0100 Subject: [PATCH] feat(cask): create emacs-app-good with version 2021-06-23.7be75f1.master --- Casks/emacs-app-good.rb | 60 +++++++++++++++++++++++++++++++++ templates/emacs-app-good.rb.tpl | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 Casks/emacs-app-good.rb create mode 100644 templates/emacs-app-good.rb.tpl diff --git a/Casks/emacs-app-good.rb b/Casks/emacs-app-good.rb new file mode 100644 index 00000000..803dd2eb --- /dev/null +++ b/Casks/emacs-app-good.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +cask 'emacs-app-good' do + version '2021-06-23.7be75f1.master' + + sha256 'e55f1429fac5798900419e4b46e79eb2c5fc009c09f2a867c609131429d6ec3f' + url 'https://github.com/jimeh/emacs-builds/releases/download/Emacs.2021-06-23.7be75f1.master/Emacs.2021-06-23.7be75f1.master.macOS-10-15.x86_64.dmg' + + name 'Emacs' + desc 'GNU Emacs text editor (known good nightly build)' + homepage 'https://github.com/jimeh/emacs-builds' + + livecheck do + url 'https://github.com/jimeh/emacs-builds/issues/7' + strategy :page_match do |page| + page.scan(%r{href=.*?https://github\.com/jimeh/emacs-builds/releases/tag/Emacs\.(\d{4}-\d{2}-\d{2}\.\w+\.master)}i) + .map { |match| match&.first } + end + end + + conflicts_with( + cask: %w[ + emacs-app-nightly + emacs-app + emacs + emacs-nightly + emacs-pretest + emacs-mac + emacs-mac-spacemacs-icon + ], + formula: %w[ + emacs + emacs-mac + ] + ) + + depends_on macos: '>= :catalina' + depends_on arch: :intel + + app 'Emacs.app' + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/ebrowse" + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/emacs" + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/emacsclient" + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/etags" + binary "#{appdir}/Emacs.app/Contents/Resources/include/emacs-module.h", + target: "#{HOMEBREW_PREFIX}/include/emacs-module.h" + binary "#{appdir}/Emacs.app/Contents/Resources/site-lisp/subdirs.el", + target: "#{HOMEBREW_PREFIX}/share/emacs/site-lisp/subdirs.el" + + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/ebrowse.1.gz" + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/emacs.1.gz" + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/emacsclient.1.gz" + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/etags.1.gz" + + zap trash: [ + '~/Library/Caches/org.gnu.Emacs', + '~/Library/Preferences/org.gnu.Emacs.plist', + '~/Library/Saved Application State/org.gnu.Emacs.savedState' + ] +end diff --git a/templates/emacs-app-good.rb.tpl b/templates/emacs-app-good.rb.tpl new file mode 100644 index 00000000..18536690 --- /dev/null +++ b/templates/emacs-app-good.rb.tpl @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +cask 'emacs-app-good' do + version '{{ .Version }}' + + sha256 '{{ .SHA256 "macOS-10-15.x86_64" }}' + url '{{ .DownloadURL "macOS-10-15.x86_64" }}' + + name 'Emacs' + desc 'GNU Emacs text editor (known good nightly build)' + homepage 'https://github.com/jimeh/emacs-builds' + + livecheck do + url 'https://github.com/jimeh/emacs-builds/issues/7' + strategy :page_match do |page| + page.scan(%r{href=.*?https://github\.com/jimeh/emacs-builds/releases/tag/Emacs\.(\d{4}-\d{2}-\d{2}\.\w+\.master)}i) + .map { |match| match&.first } + end + end + + conflicts_with( + cask: %w[ + emacs-app-nightly + emacs-app + emacs + emacs-nightly + emacs-pretest + emacs-mac + emacs-mac-spacemacs-icon + ], + formula: %w[ + emacs + emacs-mac + ] + ) + + depends_on macos: '>= :catalina' + depends_on arch: :intel + + app 'Emacs.app' + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/ebrowse" + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/emacs" + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/emacsclient" + binary "#{appdir}/Emacs.app/Contents/MacOS/bin/etags" + binary "#{appdir}/Emacs.app/Contents/Resources/include/emacs-module.h", + target: "#{HOMEBREW_PREFIX}/include/emacs-module.h" + binary "#{appdir}/Emacs.app/Contents/Resources/site-lisp/subdirs.el", + target: "#{HOMEBREW_PREFIX}/share/emacs/site-lisp/subdirs.el" + + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/ebrowse.1.gz" + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/emacs.1.gz" + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/emacsclient.1.gz" + manpage "#{appdir}/Emacs.app/Contents/Resources/man/man1/etags.1.gz" + + zap trash: [ + '~/Library/Caches/org.gnu.Emacs', + '~/Library/Preferences/org.gnu.Emacs.plist', + '~/Library/Saved Application State/org.gnu.Emacs.savedState' + ] +end