From 3e37b20a2e941ac0eb318426f1b92872ac827704 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sat, 23 Oct 2021 14:16:45 +0100 Subject: [PATCH] feat(cask): add emacs-app-nightly-28 cask This cask provides nightly builds of the "emacs-28" release branch. Once Emacs 28.x receives a stable release, this cask will be deprecated. --- Casks/emacs-app-good.rb | 1 + Casks/emacs-app-nightly-28.rb | 65 +++++++++++++++++++++++++++ Casks/emacs-app-nightly.rb | 1 + Casks/emacs-app.rb | 1 + templates/emacs-app-good.rb.tpl | 1 + templates/emacs-app-nightly-28.rb.tpl | 65 +++++++++++++++++++++++++++ templates/emacs-app-nightly.rb.tpl | 1 + templates/emacs-app.rb.tpl | 1 + 8 files changed, 136 insertions(+) create mode 100644 Casks/emacs-app-nightly-28.rb create mode 100644 templates/emacs-app-nightly-28.rb.tpl diff --git a/Casks/emacs-app-good.rb b/Casks/emacs-app-good.rb index edd0e1b6..93dda68e 100644 --- a/Casks/emacs-app-good.rb +++ b/Casks/emacs-app-good.rb @@ -21,6 +21,7 @@ cask 'emacs-app-good' do conflicts_with( cask: %w[ emacs-app-nightly + emacs-app-nightly-28 emacs-app emacs emacs-nightly diff --git a/Casks/emacs-app-nightly-28.rb b/Casks/emacs-app-nightly-28.rb new file mode 100644 index 00000000..70fb76b5 --- /dev/null +++ b/Casks/emacs-app-nightly-28.rb @@ -0,0 +1,65 @@ +# frozen_string_literal: true + +cask 'emacs-app-nightly-28' do + version '2021-10-22.efdffd8.emacs-28' + + sha256 'f56ed51454ffa74076d8ea176a9fc00a673c64b092a590e7a8520af4e2fcbc00' + url 'https://github.com/jimeh/emacs-builds/releases/download/Emacs.2021-10-22.efdffd8.emacs-28/Emacs.2021-10-22.efdffd8.emacs-28.macOS-10-15.x86_64.dmg' + + name 'Emacs' + desc 'GNU Emacs text editor (nightly build of emacs-28 branch)' + homepage 'https://github.com/jimeh/emacs-builds' + + livecheck do + url 'https://github.com/jimeh/emacs-builds.git' + strategy :git do |tags| + tags.map do |tag| + m = /^Emacs\.(\d{4}-\d{2}-\d{2}\.\w+\.emacs-28)$/.match(tag) + next unless m + + m[1] + end.compact + end + end + + conflicts_with( + cask: %w[ + emacs-app + emacs-app-nightly + emacs-app-good + emacs + emacs-nightly + emacs-pretest + emacs-mac + emacs-mac-spacemacs-icon + ], + formula: %w[ + emacs + emacs-mac + ] + ) + + depends_on macos: '>= :catalina' + depends_on formula: 'gcc' + + 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/Casks/emacs-app-nightly.rb b/Casks/emacs-app-nightly.rb index 7591b472..fabedc13 100644 --- a/Casks/emacs-app-nightly.rb +++ b/Casks/emacs-app-nightly.rb @@ -25,6 +25,7 @@ cask 'emacs-app-nightly' do conflicts_with( cask: %w[ emacs-app + emacs-app-nightly-28 emacs-app-good emacs emacs-nightly diff --git a/Casks/emacs-app.rb b/Casks/emacs-app.rb index ce1b0a33..73e1f588 100644 --- a/Casks/emacs-app.rb +++ b/Casks/emacs-app.rb @@ -25,6 +25,7 @@ cask 'emacs-app' do conflicts_with( cask: %w[ emacs-app-nightly + emacs-app-nightly-28 emacs-app-good emacs emacs-nightly diff --git a/templates/emacs-app-good.rb.tpl b/templates/emacs-app-good.rb.tpl index 7f9b0c80..6378348a 100644 --- a/templates/emacs-app-good.rb.tpl +++ b/templates/emacs-app-good.rb.tpl @@ -21,6 +21,7 @@ cask 'emacs-app-good' do conflicts_with( cask: %w[ emacs-app-nightly + emacs-app-nightly-28 emacs-app emacs emacs-nightly diff --git a/templates/emacs-app-nightly-28.rb.tpl b/templates/emacs-app-nightly-28.rb.tpl new file mode 100644 index 00000000..a743e046 --- /dev/null +++ b/templates/emacs-app-nightly-28.rb.tpl @@ -0,0 +1,65 @@ +# frozen_string_literal: true + +cask 'emacs-app-nightly-28' do + version '{{ .Version }}' + + sha256 '{{ .SHA256 "macOS-10-15" "x86_64" }}' + url '{{ .DownloadURL "macOS-10-15" "x86_64" }}' + + name 'Emacs' + desc 'GNU Emacs text editor (nightly build of emacs-28 branch)' + homepage 'https://github.com/jimeh/emacs-builds' + + livecheck do + url 'https://github.com/jimeh/emacs-builds.git' + strategy :git do |tags| + tags.map do |tag| + m = /^Emacs\.(\d{4}-\d{2}-\d{2}\.\w+\.emacs-28)$/.match(tag) + next unless m + + m[1] + end.compact + end + end + + conflicts_with( + cask: %w[ + emacs-app + emacs-app-nightly + emacs-app-good + emacs + emacs-nightly + emacs-pretest + emacs-mac + emacs-mac-spacemacs-icon + ], + formula: %w[ + emacs + emacs-mac + ] + ) + + depends_on macos: '>= :catalina' + depends_on formula: 'gcc' + + 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-nightly.rb.tpl b/templates/emacs-app-nightly.rb.tpl index 8f57bdd6..92bdfc31 100644 --- a/templates/emacs-app-nightly.rb.tpl +++ b/templates/emacs-app-nightly.rb.tpl @@ -25,6 +25,7 @@ cask 'emacs-app-nightly' do conflicts_with( cask: %w[ emacs-app + emacs-app-nightly-28 emacs-app-good emacs emacs-nightly diff --git a/templates/emacs-app.rb.tpl b/templates/emacs-app.rb.tpl index 34413a04..9f00ad1e 100644 --- a/templates/emacs-app.rb.tpl +++ b/templates/emacs-app.rb.tpl @@ -25,6 +25,7 @@ cask 'emacs-app' do conflicts_with( cask: %w[ emacs-app-nightly + emacs-app-nightly-28 emacs-app-good emacs emacs-nightly