diff --git a/Casks/emacs-app-nightly.rb b/Casks/emacs-app-nightly.rb new file mode 100644 index 00000000..49aa0122 --- /dev/null +++ b/Casks/emacs-app-nightly.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +cask 'emacs-app-nightly' do + version '2021-06-26.b8f9e58.master' + + sha256 'c2a624cac4395541baf36abbd3804f17812fd3cae69e7bd29aea9eee8c58d768' + url 'https://github.com/jimeh/emacs-builds/releases/download/Emacs.2021-06-26.b8f9e58.master/Emacs.2021-06-26.b8f9e58.master.macOS-10-15.x86_64.dmg' + + name 'Emacs' + desc 'GNU Emacs text editor' + 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| + tag.gsub(/^Emacs.(\d{4}-\d{2}-\d{2}\.\w+\.master)$/i, '\\1') + end.compact + end + end + + conflicts_with( + cask: %w[ + 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-nightly.rb.tpl b/templates/emacs-app-nightly.rb.tpl new file mode 100644 index 00000000..7d0df00c --- /dev/null +++ b/templates/emacs-app-nightly.rb.tpl @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +cask 'emacs-app-nightly' do + version '{{ .Version }}' + + sha256 '{{ .SHA256 "macOS-10-15.x86_64" }}' + url '{{ .DownloadURL "macOS-10-15.x86_64" }}' + + name 'Emacs' + desc 'GNU Emacs text editor' + 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| + tag.gsub(/^Emacs.(\d{4}-\d{2}-\d{2}\.\w+\.master)$/i, '\\1') + end.compact + end + end + + conflicts_with( + cask: %w[ + 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