(message ";;; ercrc --> Start")
(message ";;; ercrc --> Load")
(require-if-available 'erc)
(when (load "erc" t)
(require 'erc-imenu)
(require 'erc-menu)
(require 'erc-notify)
(require 'erc-ring)
(erc-button-mode t)
(erc-completion-mode t)
(erc-fill-mode t)
(erc-match-mode t)
(erc-netsplit-mode t)
(erc-services-mode t)
(erc-timestamp-mode t)
(erc-track-mode t)
(add-hook 'erc-mode-hook 'erc-add-scroll-to-bottom)
)
(message ";;; ercrc --> Customize")
(defvar erc-auth-file-name (expand-file-name "~/.erc-auth"))
(when (file-exists-p erc-auth-file-name)
(load erc-auth-file-name))
(when (load "erc" t)
(setq erc-auto-query t)
(setq erc-echo-notices-in-minibuffer-flag t)
(setq erc-fill-column (- (window-width) 2))
(setq erc-interpret-mirc-color t)
(setq erc-pals '("jam" "dmitri" "peter" "glenn" "vin"))
(setq erc-notify-list erc-pals)
(setq erc-autojoin-channels-alist '((".*freenode\.net" . ("#emacs" "erc" "#lisp" "#olpc"))
(".*dowjones\.net" . ("#dev"))
("sbkdevtick11" . ("#dev"))
("localhost" . ("#collab"))))
(setq erc-modules '(autojoin button completion fill identd irccontrols match menu netsplit noncommands readonly ring scrolltobottom services stamp spelling track))
)
(message ";;; ercrc --> Functions")
(defun erc-server-name ()
"Return a nickname based on machine name.
\nDefaults to \"nullman\" if no match is found."
(let ((server-nick '(("tank.nullware.com" . "nulltank")
("tank" . "nulltank")
("neo.nullware.com" . "nullhome")
("neo" . "nullhome")
("mouse1.nullware.com" . "nullman")
("mouse1" . "nullman")
("min-kyle-linux.production.bigcharts.com" . "nullwork")
("min-kyle-linux" . "nullwork")))
nick)
(setq nick (cdr (assoc system-name server-nick)))
(or nick "nullman")))
(defun erc-localhost ()
"Connect to localhost irc server."
(interactive)
(let ((nick (erc-server-name)))
(erc-services-disable)
(erc :server "localhost" :port "6667" :nick nick :password nil :full-name "Kyle Sherman")
))
(global-set-key "\C-cel" 'erc-localhost)
(defun erc-localhost-bitlbee ()
"Connect to localhost bitlbee server."
(interactive)
(let ((nick (erc-server-name)))
(erc-services-disable)
(erc :server "localhost" :port "6668" :nick nick :password nil :full-name "Kyle Sherman")
))
(global-set-key "\C-ceb" 'erc-localhost-bitlbee)
(defun erc-freenode ()
"Connect to irc.freenode.net irc server."
(interactive)
(let ((nick (erc-server-name)))
(erc-services-enable)
(erc :server "irc.freenode.net" :port "6667" :nick nick :password nil :full-name "Kyle Sherman")
))
(global-set-key "\C-cef" 'erc-freenode)
(defun erc-work ()
(interactive)
"Connect to irc.win.dowjones.net irc server."
(erc-services-disable)
(erc :server "irc.win.dowjones.net" :port "6667" :nick "kyle" :password nil :full-name "Kyle Sherman")
)
(global-set-key "\C-cew" 'erc-work)
(defun erc-cmd-UPTIME (&rest ignore)
"Display the uptime of the system, as well as some load-related
stuff, to the current ERC buffer."
(let ((uname-output
(replace-regexp-in-string
", load average: " "] {Load average} ["
(replace-regexp-in-string
" +" " "
(replace-regexp-in-string
"^ +\\|[ \n]+$" ""
(shell-command-to-string "uptime"))))))
(erc-send-message
(concat "{Uptime} [" uname-output "]"))))
(message ";;; ercrc --> End")