;; packages that are needed only for twitter (use-package pants ;; interface to pants :load-path (lambda () (expand-file-name "~/src/pants.el/")) :config (setq pants-completion-system 'ivy pants-source-tree-root "/Users/fcuny/src/source" pants-bury-compilation-buffer t pants-extra-args "-q") :bind (("C-c b" . pants-find-build-file) ("C-c r" . pants-run-binary) ("C-c t" . pants-run-test))) (use-package puppet-mode ;; mode to support puppet and work with puppet :ensure t :mode ("\\.pp\\'" . puppet-mode) :init (add-hook 'puppet-mode-hook 'flycheck-mode) :config (when (memq window-system '(mac ns x)) (dolist (var '("GEM_HOME" "GEM_PATH" "MY_RUBY_HOME")) (unless (getenv var) (exec-path-from-shell-copy-env var)))) (setq flycheck-puppet-lint-rc "/Users/fcuny/src/twitter-ops/utilities/puppet/.puppet-lint.rc")) (use-package scala-mode ;; mode to work with scala files :ensure t) (use-package thrift ;; mode to work with thrift files :ensure t :mode ("\\.thrift\\'" . thrift-mode) :config (setq thrift-indent-level 2)) ;; custom functions (defun fc/check-source-p () ;; predicate for checking style only on python files (and (executable-find "check.pex") (buffer-file-name) (string-match "src/source/.*\.py$" (buffer-file-name)))) ;;; errors are reported like this: ;;; E241:ERROR : (flycheck-define-checker source-check "A syntax checker for python source code in Source, using `check.pex'" :command ("check.pex" source) :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end) (warning line-start (id (1+ nonl)) ":WARNING" (1+ nonl) ":" line (message) line-end)) :predicate fc/check-source-p :modes (python-mode)) (add-to-list 'flycheck-checkers 'source-check) (defun fc/start-nest-tmp-file (file-name) "Create a file in ~/tmp on nest for the give file name." (interactive "sName of the temporary file: ") (fc/start--file (expand-file-name (format "/nest.smfc.twitter.com:~/tmp/%s" file-name)))) (defun fc/remote-nest-dired () "Open dired on nest." (interactive) (fc/remote--dired "nest.smfc.twitter.com")) ;; un/monitor hosts by running mth remotely (defun fc/silence-host (host) (interactive "sHostname: ") (let ((default-directory "/ssh:nest.smfc.twitter.com:")) (start-file-process "mth" (get-buffer-create "*mth*") "/usr/local/bin/mth" "silence" host "99 years"))) (defun fc/unsilence-host (host) (interactive "sHostname: ") (let ((default-directory "/ssh:nest.smfc.twitter.com:")) (start-file-process "mth" (get-buffer-create "*mth*") "/usr/local/bin/mth" "unsilence" host))) (provide 'twitter)