summaryrefslogtreecommitdiff
path: root/emacs.d/lib/twitter.el
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--emacs.d/lib/twitter.el84
1 files changed, 84 insertions, 0 deletions
diff --git a/emacs.d/lib/twitter.el b/emacs.d/lib/twitter.el
new file mode 100644
index 0000000..fcf3383
--- /dev/null
+++ b/emacs.d/lib/twitter.el
@@ -0,0 +1,84 @@
+;; 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 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 <file name>:<line> <message>
+(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)