annotate src/rlm/rlm_commands.clj @ 3:c8e35134bf8e

working on qotd.
author Robert McIntyre <rlm@mit.edu>
date Wed, 18 Jan 2012 05:18:57 -0700
parents c7df1ea6fd71
children 12d1367cf1aa
rev   line source
rlm@0 1 (ns rlm.rlm-commands
rlm@0 2 (:require [rlm ns-rlm shell-write]
rlm@0 3 [clojure.contrib [duck-streams :as ds]])
rlm@0 4 (:use [clojure.contrib java-utils])
rlm@2 5 (:require clojure.java.javadoc))
rlm@0 6
rlm@0 7
rlm@0 8 (defn current-directory [] (ds/file-str "/home/r/mobius"))
rlm@0 9
rlm@0 10 (defn file-re [regex & {:keys [dir recurse] :or
rlm@0 11 {dir (current-directory) recurse false}}]
rlm@0 12 (let [dir (ds/file-str dir)]
rlm@0 13 (filter (fn [file] (re-matches regex (.getName file)))
rlm@0 14 (if recurse
rlm@0 15 (file-seq dir)
rlm@0 16 (seq (.listFiles dir))))))
rlm@0 17
rlm@0 18 (defmacro undef
rlm@0 19 "removes symbol from the current namespace"
rlm@0 20 [& symbols]
rlm@0 21
rlm@0 22 `(dorun (map (partial ns-unmap *ns*) (quote ~symbols))))
rlm@0 23
rlm@0 24
rlm@0 25 (defn ns-reset-fn
rlm@0 26 "unmaps all interned symbols from the current namespace (except in-ns and ns)"
rlm@0 27 ([ns-name]
rlm@0 28 (map (fn [s] (ns-unmap ns-name s))
rlm@0 29 (keys (ns-interns ns-name)))))
rlm@0 30
rlm@0 31 (defmacro ns-reset
rlm@0 32 "unmaps all symbols from the current namespace (except in-ns and ns)"
rlm@0 33 ([ns-name] `(ns-clear-fn (quote ~ns-name)))
rlm@0 34 ([] `(ns-clear-fn (quote ~(symbol (str *ns*))))))
rlm@0 35
rlm@0 36 (defmacro ns-nuke-old
rlm@0 37 ([]
rlm@0 38 (let [current-ns# (symbol (str *ns*))]
rlm@0 39 `(do
rlm@0 40 (println "NUKING namespace" (quote ~current-ns#))
rlm@0 41 (clojure.lang.Namespace/remove (quote ~current-ns#))
rlm@0 42 (ns ~current-ns#)))))
rlm@0 43
rlm@0 44 (defmacro ns-nuke
rlm@0 45 "Removes all symbols and all referenced symbols. Use as a last
rlm@0 46 resort."
rlm@0 47 ([]
rlm@0 48 (let [current-ns# (symbol (str *ns*))]
rlm@0 49 `(ns-nuke ~current-ns#)))
rlm@0 50 ([ns]
rlm@0 51 `(do
rlm@0 52 (println "NUKING namespace" (quote ~ns))
rlm@0 53 (clojure.lang.Namespace/remove (quote ~ns))
rlm@0 54 (ns ~ns))))
rlm@0 55
rlm@0 56 (defmacro reload []
rlm@0 57 `(do
rlm@0 58 (rlm.ns-rlm/ns-clear)
rlm@0 59 (use :reload-all (quote ~(symbol (str *ns*))))))
rlm@0 60
rlm@0 61 (defmacro reload []
rlm@0 62 `(do
rlm@0 63 (rlm.rlm-commands/ns-nuke)
rlm@0 64 (clojure.core/use
rlm@0 65 :reload-all
rlm@0 66 (clojure.core/symbol (clojure.core/str clojure.core/*ns*)))))
rlm@0 67
rlm@0 68 (defmacro re "faster"
rlm@0 69 []
rlm@0 70 `(do
rlm@0 71 (rlm.rlm-commands/ns-nuke)
rlm@0 72 (clojure.core/use :reload
rlm@0 73 (clojure.core/symbol (clojure.core/str clojure.core/*ns*)))))
rlm@0 74
rlm@0 75 (defn keymap-clojure []
rlm@0 76 (rlm.shell-write/sw "xmodmap" "/home/r/.xmodmap.clojure"))
rlm@0 77
rlm@0 78 (defn keymap-normal []
rlm@0 79 (rlm.shell-write/sw "xmodmap" "/home/r/.xmodmap.normal"))
rlm@0 80
rlm@0 81
rlm@0 82 (defn rlm []
rlm@0 83 (clojure.core/require 'rlm.light-base)
rlm@0 84 (rlm.ns-rlm/ns-clone rlm.light-base))
rlm@0 85
rlm@2 86 (defn javadoc [target]
rlm@2 87 (binding
rlm@2 88 [clojure.java.browse/*open-url-script*
rlm@2 89 "/home/r/proj/repl/get-webpage.pl"]
rlm@2 90 (clojure.java.javadoc/javadoc target)))
rlm@2 91
rlm@0 92
rlm@0 93 (defn help
rlm@0 94 "load a bunch of really useful help functions"
rlm@0 95 []
rlm@0 96 (use
rlm@0 97 '[rlm
rlm@0 98 [function-utils :only [mix defmix runonce]]
rlm@2 99 [rlm-commands :only [undef ns-reset ns-nuke reload keymap-clojure
rlm@2 100 keymap-normal rlm javadoc]]
rlm@0 101 [ns-rlm :only [ns-clear ns-clone ls]]
rlm@0 102 [play-all :only [play-all-music]]
rlm@0 103 [shell-inspect :only [command-line?]]
rlm@0 104 [shell-write :only [sw]]
rlm@0 105 [classpath-utils :only [classpath add-to-classpath]]
rlm@0 106 [dreams :only [megadef silence]]
rlm@0 107 [map-utils :only [map-keys map-vals filter-keys filter-vals]]
rlm@0 108 [visualize :only [visual]]
rlm@0 109 [identify :only [identify]]]
rlm@0 110 '[abomination.no-parens :only [quit]]
rlm@0 111
rlm@0 112
rlm@0 113 '[clojure.contrib
rlm@0 114 [duck-streams :only [file-str read-lines]]
rlm@0 115 [str-utils :only [re-split re-gsub str-join]]
rlm@0 116 [repl-utils :only [show expression-info]]]
rlm@0 117 '[clojure
rlm@2 118 [repl :only [source]]])
rlm@2 119 (clojure.java.javadoc/add-local-javadoc
rlm@2 120 "/home/r/proj/jMonkeyEngine3/dist/javadoc")
rlm@2 121 (clojure.java.javadoc/add-local-javadoc
rlm@2 122 "/home/r/java/jdk6u30-docs/api")
rlm@2 123 (clojure.java.javadoc/add-local-javadoc
rlm@2 124 "/home/r/java/jdk6u30-docs/jdk/api")
rlm@2 125 (clojure.java.javadoc/add-local-javadoc
rlm@2 126 "/home/r/java/jdk6u30-docs/jre/api")
rlm@3 127 (clojure.java.javadoc/add-local-javadoc
rlm@3 128 "/home/r/proj/jmeCapture/docs")
rlm@3 129
rlm@0 130 nil)
rlm@0 131
rlm@0 132
rlm@0 133