diff --git a/Casks/emacs-app-good.rb b/Casks/emacs-app-good.rb index 253dd62a..6c20b02f 100644 --- a/Casks/emacs-app-good.rb +++ b/Casks/emacs-app-good.rb @@ -20,9 +20,10 @@ cask 'emacs-app-good' do conflicts_with( cask: %w[ + emacs-app emacs-app-nightly emacs-app-nightly-28 - emacs-app + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/Casks/emacs-app-nightly-28.rb b/Casks/emacs-app-nightly-28.rb index 12ece623..f78ff4c0 100644 --- a/Casks/emacs-app-nightly-28.rb +++ b/Casks/emacs-app-nightly-28.rb @@ -25,8 +25,9 @@ cask 'emacs-app-nightly-28' do conflicts_with( cask: %w[ emacs-app - emacs-app-nightly emacs-app-good + emacs-app-nightly + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/Casks/emacs-app-nightly.rb b/Casks/emacs-app-nightly.rb index c6d4927a..67721721 100644 --- a/Casks/emacs-app-nightly.rb +++ b/Casks/emacs-app-nightly.rb @@ -25,8 +25,9 @@ cask 'emacs-app-nightly' do conflicts_with( cask: %w[ emacs-app - emacs-app-nightly-28 emacs-app-good + emacs-app-nightly-28 + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/Casks/emacs-app-pretest.rb b/Casks/emacs-app-pretest.rb new file mode 100644 index 00000000..8a4c55a6 --- /dev/null +++ b/Casks/emacs-app-pretest.rb @@ -0,0 +1,65 @@ +# frozen_string_literal: true + +cask 'emacs-app-pretest' do + version '28.0.90-pretest' + + sha256 'c49633fdd23365f1a5df551365d84cede37de983dcaa788c4b6ce10bf659fc87' + url 'https://github.com/jimeh/emacs-builds/releases/download/Emacs-28.0.90-pretest/Emacs.2021-12-01.f38dfa5.emacs-28-0-90-pretest.macOS-10-15.x86_64.dmg' + + name 'Emacs' + desc 'GNU Emacs text editor (latest pretest)' + 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-(.+-pretest)$/.match(tag) + next unless m + + m[1] + end.compact + end + end + + conflicts_with( + cask: %w[ + emacs-app + emacs-app-good + emacs-app-nightly + emacs-app-nightly-28 + emacs + emacs-nightly + emacs-pretest + emacs-mac + emacs-mac-spacemacs-icon + ], + formula: %w[ + emacs + emacs-mac + ] + ) + + depends_on macos: '>= :catalina' + + 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.rb b/Casks/emacs-app.rb index f351f10e..f645a530 100644 --- a/Casks/emacs-app.rb +++ b/Casks/emacs-app.rb @@ -24,9 +24,10 @@ cask 'emacs-app' do conflicts_with( cask: %w[ + emacs-app-good emacs-app-nightly emacs-app-nightly-28 - emacs-app-good + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/templates/emacs-app-good.rb.tpl b/templates/emacs-app-good.rb.tpl index 8fc87d63..3167c0fe 100644 --- a/templates/emacs-app-good.rb.tpl +++ b/templates/emacs-app-good.rb.tpl @@ -20,9 +20,10 @@ cask 'emacs-app-good' do conflicts_with( cask: %w[ + emacs-app emacs-app-nightly emacs-app-nightly-28 - emacs-app + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/templates/emacs-app-nightly-28.rb.tpl b/templates/emacs-app-nightly-28.rb.tpl index 2dc26f9f..25d90fd1 100644 --- a/templates/emacs-app-nightly-28.rb.tpl +++ b/templates/emacs-app-nightly-28.rb.tpl @@ -25,8 +25,9 @@ cask 'emacs-app-nightly-28' do conflicts_with( cask: %w[ emacs-app - emacs-app-nightly emacs-app-good + emacs-app-nightly + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/templates/emacs-app-nightly.rb.tpl b/templates/emacs-app-nightly.rb.tpl index c1d64298..5f4fb2f3 100644 --- a/templates/emacs-app-nightly.rb.tpl +++ b/templates/emacs-app-nightly.rb.tpl @@ -25,8 +25,9 @@ cask 'emacs-app-nightly' do conflicts_with( cask: %w[ emacs-app - emacs-app-nightly-28 emacs-app-good + emacs-app-nightly-28 + emacs-app-pretest emacs emacs-nightly emacs-pretest diff --git a/templates/emacs-app-pretest.rb.tpl b/templates/emacs-app-pretest.rb.tpl new file mode 100644 index 00000000..d69a950b --- /dev/null +++ b/templates/emacs-app-pretest.rb.tpl @@ -0,0 +1,65 @@ +# frozen_string_literal: true + +cask 'emacs-app-pretest' do + version '{{ .Version }}' + + sha256 '{{ .SHA256 "macOS-10-15" "x86_64" }}' + url '{{ .DownloadURL "macOS-10-15" "x86_64" }}' + + name 'Emacs' + desc 'GNU Emacs text editor (latest pretest)' + 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-(.+-pretest)$/.match(tag) + next unless m + + m[1] + end.compact + end + end + + conflicts_with( + cask: %w[ + emacs-app + emacs-app-good + emacs-app-nightly + emacs-app-nightly-28 + emacs + emacs-nightly + emacs-pretest + emacs-mac + emacs-mac-spacemacs-icon + ], + formula: %w[ + emacs + emacs-mac + ] + ) + + depends_on macos: '>= :catalina' + + 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.rb.tpl b/templates/emacs-app.rb.tpl index 5df036cf..8456333d 100644 --- a/templates/emacs-app.rb.tpl +++ b/templates/emacs-app.rb.tpl @@ -24,9 +24,10 @@ cask 'emacs-app' do conflicts_with( cask: %w[ + emacs-app-good emacs-app-nightly emacs-app-nightly-28 - emacs-app-good + emacs-app-pretest emacs emacs-nightly emacs-pretest