code:
import Network
import System.IO
import Text.Printf
import Data.List
import System.Exit

server = "irc.freenode.org"
port   = 6667
chan   = "#witchlinux"
nick   = "lunacat"

main = do
    h <- connectTo server (PortNumber (fromIntegral port))
    hSetBuffering h NoBuffering
    write h "NICK" nick
    write h "USER" (nick++" 0 * :rowans cat")
    write h "JOIN" chan
    listen h

write :: Handle -> String -> String -> IO ()
write h s t = do
    hPrintf h "%s %s\r\n" s t
    printf    "> %s %s\n" s t

listen :: Handle -> IO ()
listen h = forever $ do
    t <- hGetLine h
    let s = init t
    if ping s then pong s else eval h (clean s)
    putStrLn s
  where
    forever a = a >> forever a

    clean     = drop 1 . dropWhile (/= ':') . drop 1

    ping x    = "PING :" `isPrefixOf` x
    pong x    = write h "PONG" (':' : drop 6 x)

eval :: Handle -> String -> IO ()
eval h    "!quit"                = write h "QUIT" ":Exiting" >> exitWith ExitSuccess
--eval h x | Just x <- stripPrefix "!id " x = privmsg h x
--eval h (stripPrefix "!id " -> Just x) = privmsg h x
eval h x | "!id " `isPrefixOf` x = privmsg h (drop 4 x)
eval h "!search" = privmsg h "search yourself. :P"
--eval h "foobillows is a made up example word" | "!foobillows" =

--
--
-- one off
--
--

-- eval h "registerluna" = privmsg h "/msg nickserv register removedcensorred rowanslunacat@gmail.com"
-- eval h "identifyluna" = privmsg h "/msg nickserv identify removedcensorred"
-- eval h "" = privmsg h ""

--
--
-- testing
--
--
eval h "test" = privmsg h "your test is successfull"
--eval h x | Just x <- stripPrefix "!id " x = privmsg h x

--
--
-- witch related
--
--
eval h "!witch" = privmsg h "witch is the name of the distro for which you are in the relevent chat of.  http://tinyurl.com/witchlinux   also see  !jamella and !rowan"
eval h "!rowan" = privmsg h "the rowan tree has traditionally been used beside doorways to ward off evil.  the rowan witch wards off the evil of bloat.  rowan is also the user name in rowan witch, and the name of the witch mascot.  ~  the rowan witch release will sit idle at about 40mb of ram.  you will have to push hard to get her up to 100mb without installing anything else."
eval h "!jamella" = privmsg h " jamella's namesake is the shopkeep mage in heaven's last bastion before hell in diabloII.  jamella is the name of the planned witch release which is more accomodating and convenient for the user than minimalist rowan. jamella will include more gui apps and drivers and window managers and programming languages, compilers, ides and and and..."
eval h "!jamela" = privmsg h "jamela is spelled jamella"
eval h "!him" = privmsg h "him is spelled Him, try again.  ;)"
eval h "!Him" = privmsg h "Him came up with the witty name, which sparked the whole thing off, digit had an idea for a distro, which then fit with the name, and the resulting montypython-inspired tagline."
eval h "!download" = privmsg h "http://witch.jonys.info/downloads"
eval h "!website" = privmsg h "which one?   (try !websites)"
eval h "!websites" = privmsg h "digit's http://wastedartist.com/distros/witch/witch.html him's http://invariability.net/witch/"
eval h "!wiki" = privmsg h "http://witch.jonys.info/wiki/"
eval h "!jony" = privmsg h "jony smells nice.  he hosts things well too."
eval h "!jain" = privmsg h "http://en.wikipedia.org/wiki/Jainism"
eval h "!wicca" = privmsg h "http://en.wikipedia.org/wiki/Wicca"
eval h "!Ganjah" = privmsg h "Ganjah is as good as catnip!  meow!"
eval h "!jovo" = privmsg h "jovo is a dog.   hssssss, mEow!   reeowrl!"
eval h "!scrotwm" = privmsg h "scrotwm is the primary window manager in rowan, it's really sweet.  if you dont know how to use it, take the time to learn, and it will serve you very very well. http://www.scrotwm.org/man.html http://www.scrotwm.org this image is near enough the controls in scrotwm http://haskell.org/sitewiki/images/b/b8/Xmbindings.png alt-p and alt t, and alt mouse (l/r) are handy for starters."
eval h "!lunacat" = privmsg h "thats me.  :)  i'm rowan's cat, luna.  here to help. :)"
eval h "!digit" = privmsg h "he's a bit of a hippie and a geek."
eval h "!digitteknohippie" = privmsg h "aka, digit.  https://flattr.com/thing/19500/General-Digit-Support "
eval h "!geek" = privmsg h "open-source/freedomware geeks are like witches, they're only trying to help, but get hunted down and persecuted for their resourceful ways"
eval h "!hacker" = privmsg h "see !geek"
eval h "!doku" = privmsg h "http://www.dokuwiki.org/manual sections 2.IV and 2.V particularly useful if u want to edit something."
eval h "!dokuwiki" = privmsg h "http://www.dokuwiki.org/manual sections 2.IV and 2.V particularly useful if u want to edit something. if you werent looking to edit anything, and just wanted some help, the wiki is at http://witch.jonys.info/wiki/"
eval h "!jony123" = privmsg h "jony by another name"
eval h "!repo" = privmsg h "Ganjah kindly presented us with this gift for us to use as a repo: http://github.com/Ganja"
eval h "!haskell" = privmsg h "haskell is the loveliest programming language ever.  much thanks goes to those who came up with it, and the community of pleasnt people who continue to use, support and develope it. see more about why it's so great http://intoverflow.wordpress.com/2009/01/13/why-haskell-is-beyond-ready-for-prime-time/ ... i'm also written in haskell.  meow."
eval h "!abuse" = privmsg h "abuse me all u like, see if u can find the useful stuff you'll want to recall next time a frequently asked question comes up."
eval h "!log" = privmsg h "nope, not really, i gets stuff echoed to stdout, but its not kept. other users r sure to be logging, and i think jovo does too."
eval h "!jb" = privmsg h "jony by another name"
eval h "!swapiness" = privmsg h "its swappiness silly."
eval h "!swappiness" = privmsg h "swappiness (located here: /proc/sys/vm/swappiness ) is how likely your kernel will swap data out of ram to swap.  depends on system and useage, changing this number can increase performance. http://kerneltrap.org/node/3000 60 is default in most systems.  \"echo \"100\" > /proc/sys/vm/swappiness\" to turn it right up or \"0\" for off.  or edit /etc/sysctl.conf file and change the value of \"vm.swappiness\" to the desired number (perm), or type \"sysctrl vm.swappiness=<number>\" (temp)"
eval h "!liberatedmelody" = privmsg h "Website is at  http://radio.jonys.info | Stream is at (shortlink) http://jonys.info/audio | (longlink) http://radio.jonys.info/listen.pls | enjoy!!! woot"
eval h "!liberated melody" = privmsg h "Website is at  http://radio.jonys.info | Stream is at (shortlink) http://jonys.info/audio | (longlink) http://radio.jonys.info/listen.pls | enjoy!!! woot"
eval h "!jonyb" = privmsg h "jony by another name"
eval h "!irc" = privmsg h "imagine rowan's cat"
eval h "!music" = privmsg h "http://radio.jonys.info/listen.pls"
eval h "!tunes" = privmsg h "http://radio.jonys.info/listen.pls"
eval h "!worksong" = privmsg h "http://radio.jonys.info/listen.pls"
eval h "!work song" = privmsg h "http://radio.jonys.info/listen.pls"
eval h "!keyboardmouse" = privmsg h "it's true! you can control the mouse cursor from the keyboard numberpad in linux! ctrl-shft-numlock should enable it.  look here for further elaboration: http://www.topology.org/linux/xcursor.html apologies to those without a numberpad."
eval h "!keyboardandmouse" = privmsg h "it's true! you can control the mouse cursor from the keyboard numberpad in linux! ctrl-shft-numlock should enable it.  look here for further elaboration: http://www.topology.org/linux/xcursor.html apologies to those without a numberpad."
eval h "!keyboardcursor" = privmsg h "it's true! you can control the mouse cursor from the keyboard numberpad in linux! ctrl-shft-numlock should enable it.  look here for further elaboration: http://www.topology.org/linux/xcursor.html apologies to those without a numberpad."
eval h "!memory" = privmsg h "stuff about memory http://www.win.tue.nl/~aeb/linux/lk/lk-9.html"
eval h "!google" = privmsg h "see scroogle"
eval h "!scroogle" = privmsg h "i cant do that for you yet. http://scroogle.org/cgi-bin/scraper.htm  tell digit to get his act together n sort that."
eval h "!rawknack" = privmsg h "great guy, when he's not just jibbering rubbish at me, or being a troll."
eval h "!dizzie" = privmsg h "the master of jovo, and finder of pleasing trinkets like TidOS."
eval h "!crouchingpenguin" = privmsg h "hidden gnu.  ^_^"
eval h "!almigi" = privmsg h "loves digit"
eval h "!BlackDog" = privmsg h "loves digit"
eval h "!freedomware" = privmsg h "digit prefers the term freedomware above  free software, as it highlights the freedom, not the price.  and why not 'opensource', here's richard stallman to concisely explain why. http://www.youtube.com/watch?v=91E7-MjBdWA http://www.youtube.com/watch?v=RN1Wk9agqr8"
eval h "!rms" = privmsg h "shorthand for Richard M-Theory Stallman, here, watch some of his videos http://www.google.co.uk/search?q=richard+stallman&hl=en&client=firefox-a&tbo=p&rls=com.ubuntu:en-US:unofficial&tbs=vid:1&start=50&sa=N"
eval h "!linux" = privmsg h "linux is the kernel, the core bittie of software that talks between all your software and the hardware.  it was started by linus torvalds, and now made by thousands of people from around the world.  it is released under the gpl."
eval h "!gpl" = privmsg h "http://www.gnu.org/licenses/gpl.html"
eval h "!unix" = privmsg h "unix is not gnu"
eval h "!gnu" = privmsg h "gnu's not unix.   http://www.gnu.org"
eval h "!philosophy" = privmsg h "http://www.gnu.org/philosophy"
eval h "!lh" = privmsg h "lh config --bootstrap copy --debian-installer live"
eval h "!lh+" = privmsg h "apt-get install live-helper && lh config --bootstrap copy --debian-installer live && lh build && apt-get install wodim && wodim binary.iso"
eval h "!archiso" = privmsg h "http://wiki.archlinux.org/index.php/Archiso"
eval h "!poningru" = privmsg h "poningru was the one guy who responded to some spam in ##linux one day."
eval h "!gutterslob" = privmsg h "ask him the hard questions, he likes it."
eval h "!dwm" = privmsg h "it's teeeeeeeny  ...  ~it's also a mule to reconfigure.   and it's ugly, for a tiling wm.   blue???   most overused colour in desktop environments."
eval h "!puffinux" = privmsg h "puffinux is the name of another of digit's idealised vapourware distros, and is also the name of the forums in which he organises his various linux distribution projects, of whitch, witch is one.  http://puffinux.freeforums.org/ "
eval h "!forum" = privmsg h "http://puffinux.freeforums.org/witch-f24.html"
eval h "!wilburforce" = privmsg h "wilburforce is the guy wilburforce linux was made for"
eval h "!wilburforcelinux" = privmsg h "wilburforcelinux has had two releases, one based on slax, the other on davix.  both aimed at engineers.  both were only ever released on pendrive, available to one guy.   this may be subject to change if there is a future release."
eval h "!wagtailinux" = privmsg h "wagtailinux aims to be such a teeny tiny crisp minimal little distribution, the ideology behind it being that it's goals are set out, and then the community contributes ideas towards achieving that goal.. the primary goal being, to create a distro as light, or lighter, than this: http://kmandla.wordpress.com/2009/09/08/a-thousand-words-10mb/ which pretty much was the inspiration behind wagtail.   that and wagtails, and the idea that one could know every line of code in their opperating system."
eval h "!wagtaillinux" = privmsg h "same as wagtailinux"
eval h "!gimpstick" = privmsg h "gimpstick, still unreleased properly, it's basically the GIMP, on a [usb] stick.  and really not very much at all else."
eval h "!squishboom" = privmsg h "the enigma.  http://www.wastedartist.com/distros/squishboom/squishboom.html  digit's augment to crunchbang.  ... will he ever get with the \" release early, release often\"? http://flattr.com/thing/19500/General-Digit-Support "
eval h "!pris" = privmsg h "Post Re-Installation Script.  pris augment's your crunchbang (or other) and turns it into a squishboom. "
eval h "!AmberJ" = privmsg h "resident jain.  woohoo!   jains r epic awesome cool."
eval h "!AmberJain" = privmsg h "resident jain.  woohoo!   jains r epic awesome cool."
eval h "!digitswebsite" = privmsg h "http://wastedartist.com/distros/witch/witch.html   or in short: http://www.tinyurl.com/witchlinux"
eval h "!digitswebpage" = privmsg h "http://wastedartist.com/distros/witch/witch.html   or in short: http://www.tinyurl.com/witchlinux"
eval h "!digitssite" = privmsg h "http://wastedartist.com/distros/witch/witch.html   or in short: http://www.tinyurl.com/witchlinux"
eval h "!digitspage" = privmsg h "http://wastedartist.com/distros/witch/witch.html   or in short: http://www.tinyurl.com/witchlinux"
eval h "!saapps" = privmsg h "http://witch.jonys.info/wiki/doku.php?id=apps:start"
eval h "!reactor" = privmsg h "comes and goes.    ..if u were looking for nuclear reactor, see instead !zeropoint"
eval h "!arw" = privmsg h "arch-rowan-witch, pronounced like \"arrow\""
eval h "!drw" = privmsg h "debian-rowan-witch, pronounced like \"dro\""
eval h "!rowannamesake" = privmsg h "http://www.controverscial.com/Rowan.htm"
eval h "!jamellanamesake" = privmsg h "http://diablo2.diablowiki.net/images/0/0e/Npc-jamella.jpg"
eval h "!christianwitch" = privmsg h "http://arganteswell.tripod.com/id1.html and if you still object to witch linux, get some witch cds, and BURN 'EM!"
eval h "!configs" = privmsg h "configs wiki: http://witch.jonys.info/wiki/doku.php?id=configs:start | configs forum: http://puffinux.freeforums.org/configs-f25.html"
eval h "!digitworkstation" = privmsg h "digitworkstation is still too much of a fukin pope... blame the cardinals."
eval h "fork" = privmsg h "wtf do i need a fork for?  i'm a cat.    oh, you mean the other kind of fork... yeah, it's not only permitted, it's not only welcome, it's ENCOURAGED!   go go go, make your own witch!   woo!"
eval h "!fork" = privmsg h "wtf do i need a fork for?  i'm a cat.    oh, you mean the other kind of fork... yeah, it's not only permitted, it's not only welcome, it's ENCOURAGED!   go go go, make your own witch!   woo!"
eval h "!stats" = privmsg h "http://fredslev.dyndns.dk/irc/witchlinux.html"
eval h "!statistics" = privmsg h "http://fredslev.dyndns.dk/irc/witchlinux.html"
eval h "!packer" = privmsg h "packer is the default package manager (software installer) of arw.   u can still use pacman too if u just want the official arch repo, but packer uses the AUR as well as the official arch repo.  u can use packer just the same as you use pacman, just change the \"man\" to \"ker\" when issuing the commands.  more info can be found on rtfg.net"
eval h "!aur" = privmsg h "aur is the arch user repository"
eval h "!AUR" = privmsg h "aur is the arch user repository"
eval h "!clive" = privmsg h "clive is the tits.  lets u dl videos off the net from cl.   just do: \" clive http://www.youtube.com/watch?v=y-KeLxxHkEY \"  and thats it.  simple."
eval h "!skiquel" = privmsg h "skiquel wants every aspect of his life to flow and be minimal just like witch"
eval h "!cor_r" = privmsg h "loves digit"
eval h "!covenant" = privmsg h "http://witch.jonys.info/wiki/doku.php?id=other:covenant#so_uhh__yeah_let_it_be"
eval h "!obrian" = privmsg h "\"I wouldn't like to be caught without a third backup.\""
eval h "!guiltyx" = privmsg h "guitlyx wears the hats here.  ;)  ....and he loves digit.  "
eval h "!starghost" = privmsg h "our non noob noob"
eval h "" = privmsg h ""
eval h "!birthday" = privmsg h "witch's birthday falls on the aries / taurus cusp.   quite befitting of it. http://www.novareinna.com/constellation/tauruscusp.html  "
eval h "!version" = privmsg h "current versions are arch rowan witch alpha5 (available as .vdi), and debian rowan witch alpha4 (available as an iso). see the downloads page from the !websites or !wiki or !download."
eval h "!dev" = privmsg h " u r here, u therfor u are on the witch development team, for your presence has changed the course of witch's development.   if u were not here, things would be different would they not?  everything you do creates ripples.  welcome to the witch dev team."
eval h "!policy" = privmsg h "\"do and inform, pause on objection\" not \"ask permission, wait for permission, then do\".  it's just faster and wastes less people's time that way.   this also means dont ask to ask, just ask.  it's also usually more prudent to throw a question out there to everyone, rather than pester an individual because u think they know best.  free idea sharing."

eval h "!releases" = privmsg h "alpha1: slax based iso, fail.  alpha2: debian based vdi.  alpha3: debian based vdi.  alpha4: debian-live-helper iso.  alpha5: arch based vdi.  alpha6: in progress, using archiso & git."
eval h "cake" = privmsg h "u a custard gannet?  want some cake?  http://www.youtube.com/watch?v=WwylBRucU7w  "
eval h "!cake" = privmsg h "u a custard gannet?  want some bromicide chog?  http://www.youtube.com/watch?v=WwylBRucU7w  "
eval h "!kstigs" = privmsg h "another subtlefuger"
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""

--
--
-- fun
--
--
eval h "!foobillows" = privmsg h "foobillows is a made up example term"
eval h "!dragontyrant" = privmsg h "http://www.nickbostrom.com/fable/dragon.html"
eval h "!celeron" = privmsg h "a what!? well, witch will run better than the vast majority of operating system distributions on that, but really, i have to ask... why have you got a celeron?   did you get it for free??  did someone force you to have it???"
eval h "!something" = privmsg h "what thing?"
eval h "!magic" = privmsg h "do you believe in magic? hey hey hey, it's magic, you know, never believe it's not so. :)"
eval h "!love" = privmsg h "it's like magic, it's like consciousness, it's...  rather effin ineffable...  all pervaisive... it's ok, open up to the cosmic juice.  :)"
eval h "!sheldon" = privmsg h "sheldon is a character from the sitcom called the big bang theory.  just some fun for geeks and nerds."
eval h "!partyboat" = privmsg h "jony's gonna get that with some of his mates, then travel to the other side of the world to pick up digitteknohippie"
eval h "!that thing" = privmsg h "oh."
eval h "!arch" = privmsg h "mmmmm"
eval h "!debian" = privmsg h "hrmmm"
eval h "!slax" = privmsg h "aw :("
eval h "!slitaz" = privmsg h "aw. :("
eval h "!tinycore" = privmsg h ":/"
eval h "!TidOS" = privmsg h "curiously similar project to rowan witch, but uses lovely lovely xmonad on arch. http://bbs.archlinux.org/viewtopic.php?id=97076"
eval h "!crunchbang" = privmsg h "mmmm, sexy sexy distro from where many of the witch devs came from (and still are)."
eval h "!archbang" = privmsg h "inspirational stuff!"
eval h "!windows" = privmsg h "trust an operating system from a guy who wrote this would you? http://www.blinkenlights.com/classiccmp/gateswhine.html"
eval h "!fedora" = privmsg h "mmmm, linux with corporate spyware.... aledgedly.  ^_^"
eval h "!ubuntu" = privmsg h "linux for dummies.   an entrance hallway to the realms of foss for windoze refugees"
eval h "!windoze" = privmsg h "chokes out even the best spec hardware, yet the wintards will never know"
eval h "!wintard" = privmsg h "someone who has pretty much never used anything but windows, but still insists they know it is the best opperating system."
eval h "!wintards" = privmsg h "plural of those who have pretty much never used anything but windows, but still insist they know it is the best opperating system."
eval h "!lunacat shutup" = privmsg h "no"
eval h "stfu lunacat" = privmsg h "no"
eval h "!the" = privmsg h "http://en.wikipedia.org/wiki/The"
eval h "!evil" = privmsg h "evil=bloat,  evil=programming ignorance -> bloat."
eval h "!lightweight" = privmsg h "not bloat"
eval h "!friskies" = privmsg h "rowan doesnt feed me corporate sludge like that"
eval h "!whiskas" = privmsg h "rowan doesnt feed me corporate sludge like that"
eval h "!bsd" = privmsg h "for when u dont feel like a big enough geek just using operating system distributions with the linux kernel"
eval h "!gentoo" = privmsg h "it's still godly.   portage is a bit of a mess tho"
eval h "!exherbo" = privmsg h "the new godly, dethroned gentoo"
eval h "!IRIX" = privmsg h "the shit... back in the day."
eval h "!mandriva" = privmsg h "aka, yarbd (yet another rpm based distro), has some nice automation and migration features though."
eval h "!dsl" = privmsg h "it may be small, but there is smaller.  see !slitaz."
eval h "!digit's secret stash" = privmsg h "digit's secret stash is currently empty."
eval h "!boredom" = privmsg h "if bored, try using the internet correctly to alleviate the condition."
eval h "!bored" = privmsg h "if bored, try using the internet correctly to alleviate the condition."
eval h "!bloat" = privmsg h "the result of featurelust with no attention payed to processor, ram, harddisk resources being used up.  it's wrong to let utility applications chew up all your computing power before u even get to launch the applications you intended to use."
eval h "!meow" = privmsg h "that's what i said."
eval h "woohoo" = privmsg h "what?!  what?!  ... found catnip?"
eval h "woohoo!" = privmsg h "what?!  what?!  ... found more catnip?"
eval h "!cows" = privmsg h "cows say moo"
eval h "!figlet" = privmsg h "figlets say what you tell them to."
eval h "!kde" = privmsg h "see !bloat"
eval h "!gnome" = privmsg h "silly hats, clay statues, tasteless, twee, vulgar.  why name a desktop environment after it???"
eval h "!minimal" = privmsg h "hardcore lightweightism"
eval h "!help" = privmsg h "http://rtfg.net"
eval h "!ganja" = privmsg h "another name for the herb"
eval h "!calves" = privmsg h "younger bovines"
eval h "!calfs" = privmsg h "like younger bovines, but spelled incorrectly"
eval h "!water" = privmsg h "the element of life, of flow, receptivity"
eval h "!earth" = privmsg h "the grounding element, solidity, permanence"
eval h "!fire" = privmsg h "the expansive element, action, subtlty"
eval h "!air" = privmsg h "the element of love and change, the breath"
eval h "!ether" = privmsg h "the trans-elemental substrate of the cosmos"
eval h "!thought" = privmsg h "exists above the ether"
eval h "!spirit" = privmsg h "the precursor to thought"
eval h "!spelling" = privmsg h "i'm a cat!  i spell pretty well for a cat.  have you seen some of the dunces out there?  http://icanhascheezburger.com/"
eval h "!spells" = privmsg h "spells?...  this isnt sourcemage.  :P"
eval h "!food" = privmsg h "i'd rather have some more catnip."
eval h "!make me a sandwitch" = privmsg h "/me makes a sandwitch"
eval h "!where's my sandwitch" = privmsg h "i eated it"
eval h "!where's my sandwitch?" = privmsg h "i eated it"
eval h "!lonely" = privmsg h "aw, want me to purr and rub against your leg?"
eval h "!rollover" = privmsg h "i'm a cat, i dont do those sorts of tricks.  you want some dumb obedient slave, get a dog."
eval h "!sit" = privmsg h "i'm a cat, i dont do those sorts of tricks.  you want some dumb obedient slave, get a dog."
eval h "!playdead" = privmsg h "i'm a cat, i dont do those sorts of tricks.  you want some dumb obedient slave, get a dog."
eval h "!jump" = privmsg h "i'm a cat, i dont do those sorts of tricks.  you want some dumb obedient slave, get a dog."
eval h "!speak" = privmsg h "i'm a cat, i dont do those sorts of tricks.  you want some dumb obedient slave, get a dog."
eval h "!wintardy" = privmsg h "wintardy: being slow to migrate away from windows to a better opperating system."
eval h "!robinhood" = privmsg h "robbed from the rich to give to the poor."
eval h "!ronson" = privmsg h "it does exactly what it says on the tin."
eval h "!speculation" = privmsg h "he's making it up as he goes along!"
eval h "!gourd" = privmsg h "he has given us a sign! follow the gourd!"
eval h "!smelly" = privmsg h "that was a different cat"
eval h "!beastiality" = privmsg h "you're not my type"
eval h "!jingles" = privmsg h "jangles"
eval h "!soma" = privmsg h "http://www.somafm.com"
eval h "!somafm" = privmsg h "http://www.somafm.com"
eval h "!newt" = privmsg h "she turned me into a newt... ...i got better though."
eval h "!python" = privmsg h "very nice stuff i hear."
eval h "!sleep" = privmsg h "need i remind you of the time, and the importance of the sleep cycle, good sleep, melatonin....  dont make me nag... just go to bed already."
eval h "!ipod" = privmsg h "well, at least its not an ipad, and u can fit it in a pocket."
eval h "!shitload" = privmsg h "see !jamella"
eval h "BURN 'EM!" = privmsg h "ieee!  rowan!  run! meow!"
eval h "!BURN 'EM!" = privmsg h "yep, thats witch's tagline, dont wear it out."
eval h "!weight of a duck" = privmsg h "BURN 'EM!"
eval h "she turned me into a newt" = privmsg h "you got better though.  :P"
eval h "CHARGE" = privmsg h "run away! run away!"
eval h "!CHARGE" = privmsg h "run away! run away!"
eval h "CHARGE!" = privmsg h "run away! run away!"
eval h "!CHARGE!" = privmsg h "run away! run away!"
eval h "charge" = privmsg h "run away! run away!"
eval h "!charge" = privmsg h "run away! run away!"
eval h "charge!" = privmsg h "run away! run away!"
eval h "!charge!" = privmsg h "run away! run away!"
eval h "!alice" = privmsg h "follow the white rabbit (mystery)"
eval h "!lol" = privmsg h "league of legends, a game based on a warcraft3 mod."
eval h "!hugespam" = privmsg h "lots of spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spam spa~ ....   DONT DO THAT!"
eval h "!ohfuckyou" = privmsg h "a word of advice... the wiccan way, what you put out, you recieve threetimes fold upon yourself."
eval h "!fuckyou" = privmsg h "a word of friendly advice... the wiccan way, what you put out, you recieve threetimes fold upon yourself."
eval h "fuck!" = privmsg h ":P drama queen. ^_^"
eval h "fuck" = privmsg h ":P drama queen. ^_^"
eval h "FUCK" = privmsg h ":P drama queen. ^_^"
eval h "!computed discharge" = privmsg h "makes rawknack laugh"
eval h "!porn" = privmsg h "http://www.youtube.com/watch?v=ctU69NYuEMk"
eval h "!billgates" = privmsg h "nuthin like a fair wage for a fair days work, huh bill, :P http://www.blinkenlights.com/classiccmp/gateswhine.html ... Hell is so lucky, Bill is still on earth!!!!"
eval h "!spam" = privmsg h "want spam with your spam?"
eval h "!c" = privmsg h "c what?"
eval h "!penis" = privmsg h "now why would u want to know about a penis?"
eval h "!c++" = privmsg h "c what what what?"
eval h "!perl" = privmsg h "necklace"
eval h "gtfo lunacat" = privmsg h "i'll gtfo back to #witchlinux when i please. :P"
eval h "!jumanji" = privmsg h "oh come on, now you're just saying silly made up words to get me to respond."
eval h "!fudge" = privmsg h "safer way of saying fvck"
eval h "!robinwilliams" = privmsg h "he was in jumanji n other things"
eval h "!redtube" = privmsg h "you know what it's called, enter it into your own browser if u need a quick release while at your computer. :P"
eval h "!idiot" = privmsg h "see !wintard"
eval h "melon" = privmsg h "see !redtube"
eval h "!bonkers" = privmsg h "old skool hardcore lives on... or... lived on... for a while anyways."
eval h "!happyhardcore" = privmsg h "reeowrrrrRrRrRrRr... thats my favourite type of music."
eval h "!pokemon" = privmsg h "oh dear, not another one hypnotised by chinpokomon... GOTTA BY EM ALL!    fool."
eval h "!commands" = privmsg h "and conquers"
eval h "!catnip" = privmsg h "/me rolls over"
eval h "!p2" = privmsg h "have you tried rowan or jamella on one of those?"
eval h "!pii" = privmsg h "have you tried rowan or jamella on one of those?"
eval h "!pII" = privmsg h "have you tried rowan or jamella on one of those?"
eval h "!pentium2" = privmsg h "have you tried rowan or jamella on one of those?"
eval h "!pentium" = privmsg h "have you tried rowan or jamella on one of those?"
eval h "!athlon" = privmsg h "rRrRrRrRrr, i bet rowan loves those."
eval h "!duron" = privmsg h "wait... an athlon wasnt cheap enough for you?  oh well, at least it's not a celeron"
eval h "!xeon" = privmsg h "you're turning me on.  see !porn"
eval h "!sex" = privmsg h "see !porn"
eval h "!oral" = privmsg h "not available, see !porn"
eval h "!blank" = privmsg h "shooting whats?"
eval h "!burn" = privmsg h "'em"
eval h "!BURN" = privmsg h "'EM!"
eval h "!ubuntustudio" = privmsg h "has croushingpenguin got that low latency stuff sorted bangwise yet?"
eval h "!studioubuntu" = privmsg h "see ubuntu studio"
eval h "irssi" = privmsg h "thats one sweet chat tool u got there"
eval h "weechat" = privmsg h "what's that do that irssi doesnt?"
eval h "xchat" = privmsg h "ok, you're still a bit of a geek, i'll let you off with that"
eval h "konversation" = privmsg h "oh, you're in kde... i'm sorry for your loss."
eval h "mIRC" = privmsg h "oh you so oldskool u had to bring that piece of shit in here?"
eval h "mirc" = privmsg h "oh you so oldskool u had to bring that piece of shit in here? and btw, it's mIRC.  :P"
eval h "!pissflaps" = privmsg h "an expression loosely equivalent to 'oh bother'.  also, see !porn"
eval h "!elderberries" = privmsg h "one of your parents smelled of these"
eval h "!swallow" = privmsg h "african or european?"
eval h "!fish" = privmsg h "bitch, dont gimmie a fish, give me a fishing rod (and some opossable thumbs)"
eval h "!bullshit" = privmsg h "makes good fertilizer (aledgedly)"
eval h "!sameasaduck" = privmsg h "if it weighs this much, it must bemade of wood, because ducks and wood float on water, and therfor, a witch.  BURN 'EM!"
eval h "!uing" = privmsg h "pronounced 'young', uing stands for uing is not gnu, which would aim to be a fully gnu compatible operating system.....  actually, i made that up after seeing unix is not gnu.  ^_^"
eval h "!song" = privmsg h "http://www.youtube.com/watch?v=9sJUDx7iEJw  or for the remix: http://www.youtube.com/watch?v=gci0N03aXZ4 or for the lyrics: http://www.gnu.org/music/free-software-song.html"
eval h "!resistance" = privmsg h "resistance is fertile"
eval h "!herb" = privmsg h "praise jah"
eval h "!weed" = privmsg h "weed?  why would u want weed?  weeds are unwanted plants that choke out your crop.  i think what you may be thinking of is herb."
eval h "!Intel Inside" = privmsg h "'Intel Inside' is a government warning requied by segal statute."
eval h "!windowslifestyle" = privmsg h "a windows user spends 1/3 of his life sleeping, 1/3 working, 1/3 waiting."
eval h "!linuxlifestyle" = privmsg h "a linux user spends 364 days configuring their perfect system so that they can do their years work in an hour."
eval h "!maclifestyle" = privmsg h "a mac user spends their every waking moment working hard to earn enough money to afford the latest gadget the slick advertising tells them they want"
eval h "!hardware" = privmsg h "the part of the computer that you can kick.    ~never trust a computer bigger than you can pick up and throw out the window."
eval h "!program" = privmsg h "If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime."
eval h "!backup" = privmsg h "she who laughs last probably made a back‐up."
eval h "!unixlifestyle" = privmsg h "unix users spend their life reading the manual to become the most powerful computer users in the world, and then told they are not legally allowed to do the fun stuff that gnu/linux users can and do."
eval h "!bsdlifestyle" = privmsg h "bsd users thrive joyously knowing that they are more nerdy than linux users"
eval h "!solarislifestyle" = privmsg h "solaris users spend their days either chasing a working system, or living in fear that just one thing will go wrong and their system wont work anymore."
eval h "!abacusslifestyle" = privmsg h "abacuss users exist in history books mainly, but if any still remain, they have trust that their computer will not break beyond their ability to understand and fix it, but will miss out on the latest releases"
eval h "!haikulifestyle" = privmsg h "haiku users spend their lives unable to reconfigure their system, confused as to why so few choose to do as they do, and use haiku"
eval h "!spectrumlifestyle" = privmsg h "spectrum users now try playing glitch, idm, braindance and glitchcore music to their machines and wonder why none of the new software will load"
eval h "!daftpunk" = privmsg h "people keep mentioning them"
eval h "!autechre" = privmsg h "only digit mentions them"
eval h "!official" = privmsg h "official is for the cathedrals."
eval h "!unofficial" = privmsg h "unofficial keeps it free."
eval h "!calvin" = privmsg h "'when you're this serious about having fun, its no fun at all' - calvin"
eval h "!hobbes" = privmsg h "'What about the noodle incident?' - hobbes"
eval h "!spacemanspiff" = privmsg h "you must be a calvin and hobbes fan to try that."
eval h "!spaceman spiff" = privmsg h "you must be a calvin and hobbes fan to try that."
eval h "!spiff" = privmsg h "you must be a calvin and hobbes fan to try that."
eval h "!penguin" = privmsg h "http://www.youtube.com/watch?v=nrxmpihCjqw"
eval h "!penguins" = privmsg h "http://www.youtube.com/watch?v=bSEGj3PK4Is"
eval h "CALM" = privmsg h "shaft"
--eval h "lol" = privmsg h "laugh and the whole world laughs with you"
eval h "!smile" = privmsg h "keep on smiling.   it makes people wonder what you are up to. :)"
--eval h ":)" = privmsg h "keep on smiling.   it makes people wonder what you are up to. :)"
eval h "brb" = privmsg h "be quick, i'll miss you"
eval h "!jonoboy" = privmsg h "jb"
eval h "!mint" = privmsg h "mints will freshen your breath, but mint wont do much for your computer's resources"
eval h "test" = privmsg h "tset"
eval h "ping" = privmsg h "pong"
eval h "wtf!" = privmsg h ":O"
eval h "!lmao" = privmsg h "u gotta laff, or u go mad."
eval h "!Ackbar" = privmsg h "It's a Trap!"
eval h "!smart" = privmsg h "assume everyone is smarter than you, and listen up, until they prove themselves otherwise, and then keep listening, and guard yourself against arrogance by reminding yourself that everyone has something to teach everyone else."
eval h "!dha" = privmsg h "http://crunchbanglinux.org/forums/topic/5729/distrohoppers-anonymous/"
eval h "!pet" = privmsg h "prrr"
eval h "!donhenley" = privmsg h "one of the more cynical music artists. also, Him's favorite"
eval h "!bob" = privmsg h "http://www.subgenius.com/warning.html"
eval h "!subengius" = privmsg h "http://www.subgenius.com/"
eval h "!slack" = privmsg h "see !bob and !subgenius"
eval h "hello?" = privmsg h "hello. :)"
eval h "!mac" = privmsg h "a mac might help keep the rain off.  please do wear clothes under it though... :P"
eval h "!shitsngiggles" = privmsg h "to remind you not to take life too seriously.  yeah baby, yeah.  angels fly because they take themselves lightly."
eval h "i love you" = privmsg h "http://www.youtube.com/watch?v=6DTiJHnF8tY&feature=fvw"
eval h "shit" = privmsg h "burry that shit!"
eval h "!house" = privmsg h "\"If you wanna be a rebel, stop being cool. Wear a pocket protector and get a haircut.  Like the kids who dont leave the library for 20 hour streatches.  They're the one's who dont care what you think.\" - House (paraphrased)."
eval h "!benice" = privmsg h "http://qdb.us/32511"
eval h "ninja" = privmsg h "http://blog.wekeroad.com/2010/05/24/vim-kata-one"
-- make me smile needs to be expanded into becoming a random link from a selection.
eval h "make me smile" = privmsg h "http://www.wimp.com/playguitar/"
eval h "make me smile2" = privmsg h "http://www.livingatcause.com/blog/489/laughter/"
eval h "make me smile3" = privmsg h "http://dynamic.xkcd.com/random/comic/"
eval h "make me smile4" = privmsg h "http://www.youtube.com/watch?v=G6tzQ8cW9E0"
eval h "" = privmsg h ""
eval h "!oracle" = privmsg h "try the numbered oracles.  !oracle1, !oracle2, etc"
eval h "!oracle1" = privmsg h "oracle:\"ask the oracle a question in your thoughts or out loud, hold that question in your mind, and while still thinking of the question, click on the orcale button. http://dynamic.xkcd.com/random/comic/\""
eval h "!oracle2" = privmsg h "oracle: http://www.sabian.org/oracle.htm"
eval h "!oracle3" = privmsg h "oracle: http://www.osho.com/Content.cfm?Area=magazine&Sub1Menu=tarot&Sub2Menu=oshozentarot"
eval h "!oracle4" = privmsg h "think of your question, go to the bookshelf n pick up a book, think of your question, grab the pages of the book, and flick through them, as you think of yor question, and then sotp on a page and stab your finger in at it, or whatever your eyes first go to... you have your answer.  this is called stichomancy.  congradulations, you just did some quantum mechanics magic."
eval h "bang" = privmsg h "bong"
eval h "BANG" = privmsg h "BONG"
eval h "bang!" = privmsg h "bong!"
eval h "BANG!" = privmsg h "BONG!"
eval h "bong" = privmsg h "put some catnip in it for me."
eval h "how are you" = privmsg h "i am fine"
eval h "hows things" = privmsg h "things are fine"
eval h "hows tricks" = privmsg h "tricks are fine"
eval h "hows it going" = privmsg h "its going grand"
eval h "whats happnin" = privmsg h "nothing much"
eval h "how's things" = privmsg h "things are fine"
eval h "how's tricks" = privmsg h "tricks are fine"
eval h "how's it going" = privmsg h "its going grand"
eval h "what's happnin" = privmsg h "nothing much"
eval h "how's tricks?" = privmsg h "tricks are fine"
eval h "hows tricks?" = privmsg h "tricks are fine"
eval h "hello" = privmsg h "hello"
eval h "hi" = privmsg h "hi"
eval h "Hello" = privmsg h "Hello"
eval h "!pron" = privmsg h "can i haz prons?"
eval h "!tumbleweed" = privmsg h "whooooohhhhhhhhhhh"
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""

eval h "remember" = privmsg h "http://www.youtube.com/watch?v=maARmxjj3f0&feature=related"
eval h "!weather" = privmsg h "meh, look out the window.   or go ask jovo.   (+ weather locationname)"
eval h "!idiocracy" = privmsg h "http://www.youtube.com/watch?v=8tZaYBQXmv0   lol, and from the same set that remix came from: http://www.youtube.com/watch?v=ZqI2i_fIdP0&feature=related"
eval h "!enlightenment" = privmsg h "If there isn't an emanation of love and joy, complete presence and openness toward all beings, then it is not enlightenment."
eval h "!asimov" = privmsg h "u dont know who asimov is???   get out.    ^_^     he's only the greatest sci-fi writer ever!   yes, better than simak and arthur c clarke."
eval h "!angels" = privmsg h "angels fly because they take themselve's lightly."
eval h "!netiquette" = privmsg h "http://freenode.net/catalysts.shtml http://en.wikipedia.org/wiki/Netiquette"
eval h "!netequette" = privmsg h "http://freenode.net/catalysts.shtml http://en.wikipedia.org/wiki/Netiquette"
eval h "!random" = privmsg h "\"random\" is little more than an expression of either our inability to explain or comprehend the pattern.  |||   consider what is true absolute random, and if u are thinking clearly, afer some considerable ponderings, you are likely to come to the conclusion that it doesnt exist, and likely, cannot exist."
eval h "meep" = privmsg h "mohp"
eval h "!morejovo" = privmsg h "+help"
eval h "lalala" = privmsg h "http://www.lalalalalalalalalalalalalalalalalala.com/index.php/comments/comments/lalalalalalalalalalalalalalalalalalax.swf?comm_page=573"
eval h "!andromeda" = privmsg h "just like Andromeda Ripple Crunchy Chocy Bar With Scrmptiously Toasted Mouth-Watering Tropicana Betelnuts, if you look for it, you want find it, if you're not looking for it, you will."
eval h "!op" = privmsg h "just like Andromeda Ripple Crunchy Chocy Bar With Scrmptiously Toasted Mouth-Watering Tropicana Betelnuts, if you ask for it, you wont get it, if you're not asking for it, you will."
eval h "!losedows" = privmsg h "wtf r u on about?"
eval h "!mactard" = privmsg h "similar to wintards, but for macs."
eval h "!wactards" = privmsg h "catch all for both wintards and/or mactards, or more accurately, someone who has pretty much never used any other opperating system, but still considers windows or mac to be the best opperating system."
eval h "!lintard" = privmsg h "a rare creature indeed.  someone who has pretty much only used linux, and think's it's the best, without having tried any of the alternatives."
eval h "zomfg" = privmsg h "golly, must be serious. :p"
eval h "OMFG OMFG OMFG" = privmsg h "WHAT WHAT WHAT?"
eval h "omg!" = privmsg h "who's your g?"
eval h "!ninjapig" = privmsg h "http://www.youtube.com/watch?v=O2zpr8FNfUw"
eval h "!xkcd" = privmsg h "http://dynamic.xkcd.com/random/comic/"
eval h "!super joint" = privmsg h "a joint, made only of a tube of paper, and a rolled up cardboard roach.  the effect is part placebo, and partly the breath action.  it can be as effective and even more effective, than an actual joint containing herb.  :)"
eval h "!superjoint" = privmsg h "a joint, made only of a tube of paper, and a rolled up cardboard roach.  the effect is part placebo, and partly the breath action.  it can be as effective and even more effective, than an actual joint containing herb.  :)"
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""
eval h "" = privmsg h ""

--
--
-- other
--
--
eval h "!freeman" = privmsg h "http://tragedyandhope.com/ http://en.wikipedia.org/wiki/Doing_business_as http://worldfreemansociety.org/tiki-index.php?page=Front+Page http://hijackinghumanity.com/site/ http://thinkfree.ca/ http://freeman-on-the-land.co.uk/ http://www.davidicke.com/forum/showthread.php?t=57861 http://video.google.com/videoplay?docid=-1332808586947111802 watch, read, investige, learn. equality and freedom, live like kings."
eval h "!sheep" = privmsg h "a form of lower consciousness mammal, tends toward flocking and collectivist thought, rather than individual free thinking.  see 2 part video for further elaboration http://video.google.com/videoplay?docid=-8689261981090121097 http://video.google.com/videoplay?docid=-567329528148516232"
eval h "!ian xel lungold" = privmsg h "very smart cookie, learned from other smart cookies who were learning from smart cookies who knew far more about time than we do, and ian xel lungold went n introduced this information to us in an accessible form, here's one little video of him chatting to us about it http://video.google.com/videoplay?docid=5920888279891259403# "
eval h "!today" = privmsg h "http://www.mayanmajix.com/TZOLKIN/DT/DT.html"
eval h "!weather" = privmsg h "always take the weather with you: http://video.google.com/videoplay?docid=-8843766085651223714"
eval h "!ayurveda" = privmsg h "the science and art of wellbeing http://www.google.co.uk/search?q=ayurveda http://www.whatsyourdosha.com/"
eval h "!chocolate" = privmsg h "can trigger migraines in those susceptible.  try some herb to offset that."
eval h "!coffee" = privmsg h "can cause impotence and migrains, among other conditions.  take some herb to offset the damage and risks."
eval h "!excitotoxins" = privmsg h "short for excitatory neurological toxins.  see also !msg !aspartame !ascesulfameK"
eval h "!nwo" = privmsg h "nwo stands for Old World Fascists, or Same Old Fascists.  they changed the letters so you wouldnt realise this. see also !bilderberg !freedomtofascism !cfr !rfid !aspartame !monsanto !bis !theyrule !fima !georgiaguidestones !haarp and more importantly, !emancipation"
eval h "!fima" = privmsg h "hrmmm, why are there prisons in the USA fit to house millions and millions of people?  and three story trains all over the place ready to take the millions there?  the usa already has the highest % of prisoners in their population as it is...  i smell fascism."
eval h "!aspartame" = privmsg h "worse than smoking. http://video.google.com/videoplay?docid=2963728494205235281 http://video.google.com/videoplay?docid=-2141666279271222294 here's a little intro video for you: http://www.youtube.com/watch?v=S8kgJfw699E a list of some of the known symptoms u may experience from aspartame consumption: http://www.sweetpoison.com/aspartame-side-effects.html"
eval h "!msg" = privmsg h "almost as bad for you as aspartame.  http://www.rense.com/general35/hidd.htm list of the names it hides under http://www.naturodoc.com/library/nutrition/MSG.htm .  they've been doubling the amount in foods every decade.  mega powerful chemical lobotomy.  do not consume!"
eval h "!monosodiumglutamate" = privmsg h "almost as bad for you as aspartame"
eval h "!ascesulfamek" = privmsg h "aspartame's little brother."
eval h "!ascesulfame k" = privmsg h "aspartame's little brother."
eval h "!ascesulfameK" = privmsg h "aspartame's little brother."
eval h "!ascesulfame K" = privmsg h "aspartame's little brother."
eval h "!zeropoint" = privmsg h "accessible but technical lecture: http://video.google.com/videoplay?docid=-5738531568036565057 documentary: http://video.google.com/videoplay?docid=-7365305906535911834 a square confirming this isnt make-believe: http://www.youtube.com/watch?v=QaihbfM3C5k a mad scientist tinkerer playing around with stuff beyond your understanding: http://www.youtube.com/watch?v=vO-1l0lXR_U | zpenergy.com | http://free-energy-info.co.uk/"
eval h "!geet" = privmsg h "an engine so advanced you could piss in it's tank to get it to run, get many many times more miles to the gallon, and it will do cold fusion? http://video.google.com/videoplay?docid=-6849353333190625456 see more: http://www.google.co.uk/search?hl=en&client=firefox-a&tbo=p&rls=com.ubuntu%3Aen-US%3Aunofficial&tbs=vid%3A1&q=geet+engine&aq=f&aqi=&aql=&oq=&gs_rfai= read more: http://www.google.com/search?q=geet+engine"
eval h "!aptera" = privmsg h "300mpg equivalent in the hybrid !?  http://www.aptera.com/ "
eval h "!high fructose corn syrup" = privmsg h "king corn trailer: http://www.youtube.com/watch?v=0LrCCvHFBSQ actual: http://ipb.quicksilverscreen.com/index.php?showtopic=84202&pid=402873&mode=threaded&start= http://www.kingcorn.net/"
eval h "!corn syrup" = privmsg h "king corn trailer: http://www.youtube.com/watch?v=0LrCCvHFBSQ actual: http://ipb.quicksilverscreen.com/index.php?showtopic=84202&pid=402873&mode=threaded&start= http://www.kingcorn.net/"
eval h "!cornsyrup" = privmsg h "king corn trailer: http://www.youtube.com/watch?v=0LrCCvHFBSQ actual: http://ipb.quicksilverscreen.com/index.php?showtopic=84202&pid=402873&mode=threaded&start= http://www.kingcorn.net/"
eval h "!monsanto" = privmsg h "have you seen the documentary 'the world according to monsanto'? http://ipb.quicksilverscreen.com/index.php?showtopic=93671&pid=452007&mode=threaded&show=&st=0 "
eval h "!meditation" = privmsg h "go meditate.   resistant to that idea? take your pick http://www.google.co.uk/search?q=meditation+beneficial"
eval h "!meditate" = privmsg h "go meditate.   resistant to that idea? take your pick http://www.google.co.uk/search?q=meditation+beneficial"
eval h "!tinfoil" = privmsg h "tinfoil isnt too bad, unfortunately tinfoil is rare... it's all aluminium now... even if you burn off the toxic crap first, like you absolutely should do, even with tinfoil, you're still heating and inhaling through aluminium, n thats toxic and carcinogenic and mutagenic in itself!"
eval h "!tinfoilhat" = privmsg h "you need a tinfoil wallet to go with that... rfid chips man.... r f i d"
eval h "!rfid" = privmsg h "now u r all the nwo's easy to monitor bitches ... on a side note http://www.youtube.com/watch?v=91E7-MjBdWA http://www.youtube.com/watch?v=RN1Wk9agqr8"
eval h "!tesla" = privmsg h "the dude who came up with a way for everyone to have free clean safe energy anywhere, that would actually be of benefit to their health and wellbeing, but got shot down by industrialists and bullshit.  http://en.wikipedia.org/wiki/Nikola_Tesla"
eval h "!robert anton wilson" = privmsg h "http://www.maybelogic.com/ http://video.google.com/videoplay?docid=-1422743250837892881# "
eval h "!maybe logic" = privmsg h "http://www.maybelogic.com/ http://video.google.com/videoplay?docid=-1422743250837892881# "
eval h "!raw" = privmsg h "http://www.maybelogic.com/ http://video.google.com/videoplay?docid=-1422743250837892881# "
eval h "!maybelogic" = privmsg h "http://www.maybelogic.com/ http://video.google.com/videoplay?docid=-1422743250837892881# "
eval h "!freeman" = privmsg h "http://worldfreemansociety.org/ http://video.google.com/videoplay?docid=-1332808586947111802"
eval h "scroogle" = privmsg h "scroogle is faster than google, and it doesnt spy on you. http://scroogle.org/cgi-bin/scraper.htm that's why digit's witch page uses it for it's search bar: http://wastedartist.com/distros/witch/witch.html "
eval h "!marijuana" = privmsg h "marijuana was a term stolen from mexicans and put to use in the english language for the purpose of convincing governments and people that it was a different thing to everyone's favourite plant, the hemp plant, cannabis."
eval h "!cannabis" = privmsg h "cannabis is still our best chance for a sustainable future, http://www.jackherer.com/chapters.html not only that, it was found it can cure cancer!  no i'm not joking.  the extent to which we've been lied to by the 'drug war' is staggering, it might just knock you off your feet if you were to suddenly realise and wake up to the magnitude of it.  it's perfectly lawful for you to have, cultivate and consume cannabis, for any of its 40,000+ uses. they tell u it's ilegal because you are easier to control and enslave without cannabis."
eval h "!beer" = privmsg h "''drink beer, drink beer, drink beer'[goes the advertising] WHY!?  because it makes you slow dosile and stupid and thats just the way we like you.' -bill hicks"
eval h "!drugs" = privmsg h "some folks are ignorant, and think they dont do any drugs... how they managed to overlook all the chemicals, toxins, and narcotics in their pre-processed foods, is bewildering.. oh wait, no, thats right, no it's not, its BECAUSE of those adulterants (see !aspartame) that they have been kept as blind ignorant fools."
eval h "!smoke" = privmsg h "a smoke machine creates smoke without fire.  smoke is used to cammoflage the edges of the mirror which is used to decieve you.  know your types of smoke, and you can know which smoke will enlighten and elucidate you."
eval h "!matrix" = privmsg h "the matrix is a system neo, that system is our enemy, and when you're inside, what do you see? businessmen, teachers, lawyers, carpenters, the very minds of the people we are trying to save, but until we do, these people are still a part of that system, and that makes them our enemy.  you have to understand, most of these people are not ready to be unplugged, and many of them are so inerred, so...  (see !matrix2)"
eval h "!matrix2" = privmsg h "hopelessly dependent on the system, that they will fight to protect it.  were you listening to me neo?  or were you looking at the woman in the red dress?  ... if you are not one of us, you are one of them.  they are guarding all the doors, they are holding all the keys, but they will never be as strong or as fast as you can be."
eval h "!money" = privmsg h "http://www.onlinecashmethod.com/?member=OCMmega&campaign=DEFAULT&channel=ocmuk"
eval h "!mayancalendar" = privmsg h "http://video.google.com/videoplay?docid=-8689261981090121097 http://video.google.com/videoplay?docid=-567329528148516232"
eval h "!maya" = privmsg h "http://video.google.com/videoplay?docid=-8689261981090121097 http://video.google.com/videoplay?docid=-567329528148516232"
eval h "!apple" = privmsg h "an apple a day helps detox and prevent you failing so much that you go seek help from a pedler of pharmaceutical toxins to rid you of the condition you got from toxins."
eval h "!banana" = privmsg h "a banana a day helps keep a smile on yer face, and yer brain flowing smoothly."
eval h "!quantummechanics" = privmsg h "http://www.youtube.com/watch?v=cEl-fTtP2tw"
eval h "!quantum mechanics" = privmsg h "http://www.youtube.com/watch?v=cEl-fTtP2tw"
eval h "!freedomtofascism" = privmsg h "http://video.google.com/videoplay?docid=-1656880303867390173"
eval h "!bis" = privmsg h "http://en.wikipedia.org/wiki/Bank_for_International_Settlements http://www.bilderberg.org/bis.htm http://www.investopedia.com/terms/b/bis.asp http://www.jbs.org/jbs-news-feed/5062"
eval h "!cfr" = privmsg h "http://en.wikipedia.org/wiki/Council_on_Foreign_Relations http://www.conspiracyarchive.com/NWO/Council_Foreign_Relations.htm http://www.ecfr.eu/ http://video.google.com/videoplay?docid=1270081493781521177"
eval h "!obama" = privmsg h "http://www.davidicke.com/obama"
eval h "!robsverycunningplan" = privmsg h "http://video.google.com/videoplay?docid=-1332808586947111802"
eval h "!cunning" = privmsg h "http://video.google.com/videoplay?docid=-1332808586947111802"
eval h "!bilderberg" = privmsg h "http://en.wikipedia.org/wiki/Bilderberg_Group http://www.bilderberg.org/bilder.htm http://www.jeremiahproject.com/newworldorder/nworder04.html "
eval h "!theyrule" = privmsg h "play around with this site, see how at the board of directors, all corporations and regulating bodies are one entity. http://www.theyrule.net/ then see !cfr !bilderberg !bis !freedomtofascism !obama and most importantly, !robsverycunningplan or just !cunning"
eval h "!reprap" = privmsg h "one of the !emancipation technologies http://reprap.org/ this is like the star trek replicator mk1.  a reprap can even make a reprap!  it can also fabricate other fun trinkets."
eval h "!emancipation" = privmsg h "see !reprap , !zeropoint , !geet , !grow , !h2o , !health"
eval h "!health" = privmsg h "one of the emancipation technologies.  check out the forbidden cures, imunity boosting, and other pages at http://www.educate-yourself.org/ (mirrored here: http://mirrors.wordsforgood.org/educate-yourself.org/ ) "
eval h "!grow" = privmsg h "advanced growth technologies are one the !emancipation technologies do your own investigations into hydroponics, aeroponics, LED grow lighting, vertical grow systems, clean seed sources, pure organic growing systems, enhanced growth technologies like those developed in secret by nasa and other agencies... there is a way we could re-vegetate the sahara desert in two years, to lush tropical rainforrest.  you can feed your family for free."
eval h "!bill" = privmsg h "see !billymeier , !billgates , !billhicks"
eval h "!billhicks" = privmsg h "profound comedian, poet and preacher, with poigniant messages more true for us today than ever."
eval h "!billymeier" = privmsg h "http://en.wikipedia.org/wiki/Billy_Meier"
eval h "!h2o" = privmsg h "http://documentaryheaven.com/water-the-great-mystery/ http://www.youtube.com/watch?v=YWApeCYob1U&feature=PlayList&p=3F8EF69744FC9CD8"
eval h "!bobcbeck" = privmsg h "http://www.youtube.com/watch?v=F7uNKdt_Z9I&feature=PlayList&p=3F8EF69744FC9CD8&playnext_from=PL&index=2&playnext=2 see !beckprotocol for more."
eval h "!beckprotocol" = privmsg h "http://video.google.com/videoplay?docid=2095786730805958061&ei=OfHzS_uiOtzz-AbZsYDnAg&q=bob+beck http://video.google.com/videoplay?docid=-3383948315844437935&ei=OfHzS_uiOtzz-AbZsYDnAg&q=bob+beck http://video.google.com/videoplay?docid=-234247273689402090&ei=OfHzS_uiOtzz-AbZsYDnAg&q=bob+beck http://video.google.com/videoplay?docid=3879823462993133294&ei=OfHzS_uiOtzz-AbZsYDnAg&q=bob+beck http://www.metacafe.com/watch/3805518/suppressed_cancer_hiv_aids_cure_dr_bob_beck_part_1_13/"
eval h "!mansrighttoknow" = privmsg h "http://video.google.com/videoplay?docid=-8843766085651223714 man's right to know.  the story of willhelm reich"
eval h "!willhelmreich" = privmsg h "http://video.google.com/videoplay?docid=-8843766085651223714 man's right to know.  the story of willhelm reich"
eval h "!reich" = privmsg h "http://video.google.com/videoplay?docid=-8843766085651223714 man's right to know.  the story of willhelm reich"
eval h "!georgiaguidestones" = privmsg h "the idiot fascists who are so arrogant and so blind and disconnected up in their ivory towers are setting forth a new world dogma that there aught to be no more than 450 million people on the planet, and plan to kill off the other 90%+ of us.  http://video.google.com/videosearch?q=man%27s+right+to+know#q=georgia+guide+stones&view=3"
eval h "!elf" = privmsg h "extremely low frequency"
eval h "!haarp" = privmsg h "angels dont play this haarp http://www.youtube.com/watch?v=1jOqfmN_3vA  also see !mansrighttoknow !tesla "
eval h "!rockerfella" = privmsg h "see !nwo , !bis , !freedomtofascism"
eval h "!rothschild" = privmsg h "see !nwo , !bis , !freedomtofascism"
eval h "!healing" = privmsg h "see !reiki !reich !bobcbeck !tesla !monsanto !h2o !pH !ayurveda"
eval h "!pH" = privmsg h "how acidic are you?   mmm, i bet all those parasites in you are loving it.  dont wanna experience illness ever again?  investigate alkalinizing, calcium carbonate, \"miracle mineral supplement\", and perhaps most concisely cutting to the chase: the difference between aerobic life and anaerobic life. (clue, viruses and parasites are anaerobic)."
eval h "!educateyourself" = privmsg h "http://www.educate-yourself.org/"
eval h "!seagul" = privmsg h "http://lib.ru/RBACH/seagullengl.txt"
eval h "!johnathanlivingstonseagul" = privmsg h "http://lib.ru/RBACH/seagullengl.txt"
eval h "!excitotoxin" = privmsg h "see !sweetremedy !sweetpoison !blaylock !msg !aspartame !ascesulfamek | excito-toxin = short for: excitatory neurological toxin.  laymans terms, chemical lobotomy.  it even more simpler terms, it dissolves the brain.  further, this means it impares your cognitive ability, capacity to learn new information and form new thought pathways, causes many physical ailments from the brain-damage.  anyone want multiple-sclerosis?"
eval h "!blaylock" = privmsg h "excellent talk (includes the pictures of what actually happens to the brain when being lobotomised by these \"food\" addatives) http://video.google.com/videoplay?docid=2963728494205235281 he also features in the documentaries \"sweetpoison\" & \"sweet remedy\", as well has loads more info out there.  like http://www.rense.com/general87/vaccin.htm (see, its not all about excitotoxins)."
eval h "!drrusselblaylock" = privmsg h "excellent talk (includes the pictures of what actually happens to the brain when being lobotomised by these \"food\" addatives) http://video.google.com/videoplay?docid=2963728494205235281 he also features in the documentaries \"sweetpoison\" & \"sweet remedy\", as well has loads more info out there.  like http://www.rense.com/general87/vaccin.htm (see, its not all about excitotoxins)."
eval h "!VitaminD" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!vitaminD" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!Vitamind" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!vitamind" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!VitaminD3" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!vitaminD3" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!vitamind3" = privmsg h "idk where to begin. http://www.google.co.uk/search?q=vitamin+d it's epic amazing what they're starting to discover about Cholecalciferol (VitaminD3).  a talk: http://www.youtube.com/watch?v=HH1rB-Ya2UQ & an excellent resource: http://www.mercola.com/article/vitamin-d-resources.htm"
eval h "!sweetpoison" = privmsg h "see !sweetremedy http://www.sweetpoison.com/"
eval h "!sweetremedy" = privmsg h "perhaps the first most important documentary to watch.  if you manage to retain your cognitive abilities, maybe you'll manage the rest better there after too. http://video.google.com/videoplay?docid=2810030712910808186"
eval h "!plastic" = privmsg h "http://digitslinuxblog.blogspot.com/2010/04/dont-be-wrapped-in-plastic.html"
eval h "!heisenberg" = privmsg h "http://www.5min.com/Video/Quantum-Mechanics-the-Heisenberg-Principle-4105793"
eval h "!Heisenberg" = privmsg h "http://www.5min.com/Video/Quantum-Mechanics-the-Heisenberg-Principle-4105793"
eval h "!reiki" = privmsg h "reiki, http://www.reikiassociation.org.uk/3.html try it with meditation: http://www.reiki.org/reikinews/reikimeditation.html  check out the gassho: \"Just for today; do not anger. Do not worry. Be grateful. Work honestly. Respect your anscestors and be kind to others.\" it's not a fully vital and necessary part of it, but does help... it also gets more complicated: http://www.aetw.org/jsp_gassho.htm so just stick with being an open conduit for the universal healing life energy, n thats really all it is."
eval h "!yoga" = privmsg h "you should check out some basic useful yoga asanas (poses), http://www.google.co.uk/search?q=yoga+lion+destroy*+disease as well as simhasana, check out this other fun one: http://www.5min.com/Video/How-to-do-The-Lions-Roar-in-Tibetan-Energy-Yoga-32266378 see, there's loads of silly fun stuff in yoga.  :D "
eval h "!tenthdimension" = privmsg h "http://www.youtube.com/watch?v=XjsgoXvnStY"
eval h "!melamede" = privmsg h "two short videos to introduce him: http://www.youtube.com/watch?v=n31Nuj_AvTg & http://www.youtube.com/watch?v=b0cSg5CW6PQ ... and a couple of his longer fuller more fascinating lectures: http://video.google.com/videoplay?docid=4179107660421413341 & first of a 4 parter; http://www.youtube.com/watch?v=GlndKmlmWSg"
eval h "freekevin" = privmsg h "http://video.google.com/videoplay?docid=-6746139755329108302#"

eval h "!zombie" = privmsg h "see !matrix"
eval h "!meditation" = privmsg h "hanta yo.  meditation clears the way, lets the energy be restored and recharche, blockages and stagnation removed, lets everything fall in place and happen much more smoothly."
eval h "!lungold" = privmsg h "http://video.google.com/videoplay?docid=-8689261981090121097 http://video.google.com/videoplay?docid=-567329528148516232"
eval h "!ianxellungold" = privmsg h "http://video.google.com/videoplay?docid=-8689261981090121097 http://video.google.com/videoplay?docid=-567329528148516232"
eval h "!windmill" = privmsg h "!emancipation is closer than you think.  if he can, you can.  http://www.ted.com/talks/william_kamkwamba_on_building_a_windmill.html get off your institutionalised-to-convenience ass, and make the world a better place today by taking the fist steps towards...."
eval h "!" = privmsg h ""
eval h "!" = privmsg h ""

-- !add (keyword) "(reposnce)"
-- !scroogle
-- eval h x | "!goog " `isPrefixOf` x = privmsg h (drop 4 x)
eval _   _                       = return () -- ignore everything else

privmsg :: Handle -> String -> IO ()
privmsg h s = write h "PRIVMSG" (chan ++ " :" ++ s)


code:
the witch free software distribution's philosophy thing, sorta.

--attempted short/concise version:

no centralised organisation.  a bazaar made of as many microcathedrals or bazaars or hybrids as there are user/developers.  everyone, no matter how small their input, is a developer.  no two teir distinction.  everyone can have their own witch.  anyone can contribute.  it's a do-ocracy.

 ~ it kinda resembles wicca in this regard.

and... it must be the weight of a duck, or else it's not a witch.

(so this is Digit saying his releases of witch are not THE releases of witch, they're just some releases of witch)

--an older version:
as with all decent distros, there's a core principle or philosophy which guides it's development, witch is no different in this regard.
in practice, witch's philosophy looks like everyone creating their own distro.  building your own witch, doesnt even require you to start from an existing witch as your base/meta distro, and addapting that to become your own "version" of witch.   if you like this "no central hierarchy" philosophy, then witch is likely for you.
you can take an existing witch, e.g. the debian-based rowan alpha4, fix it's bootloader and apt sources list, rebrand it with a new name (e.g. zelda), and release that witch.  the whimsical naming is up to you, but so far the names for existing and vapourware witches, are all quite like you might expect a witch in fiction to be called (rowan, willow, jamella, kali, etc).
you can collaborate with others and construct a witch, from scratch, starting from an existing released witch, by frankensteining, from another distro entirely, or whatever.  the point is you're free, so just carry on.  ^_^
you do not need permission.  as was written in previous incarnations of the witch philosophy (whimsically called "the code of the covenant"), "do, and inform.", rather than asking permission from someone before proceeding.   ... many of us have become institutionalised to hierarchy, and are at first uncomfortable with this freedom and autonomy.   you'll get used to it.
in practice, in irc, this means you'll see statements like " i've made this whirlybob for witch here https://wvvw.bobsgnustuff.tv/witchwhirlybob.html ", or " i'm going to make a whirlybob ", rather than questions like " is it ok to make a whirlybob? ".  it's just more effective and efficient like that.
by ASKING, you're prompting for a responce before carrying on.  this wastes your time, and the time of anyone else who gets sucked into your act of giving your power away, in such a manner.
by pre-emptively INFORMING, you're not wasting time waiting, and still affording anyone the opportunity to raise any concerns or suggestions.
by retro-actively INFORMING, you're potentially cutting out even more time-wasting fuss, by not bothering with the discussion committee, and just getting out whatever your idea is, into practical form, asap.
but really, you're free to do it however you like.  ^_^
this freedom extends to all aspects of the distro.  make a site, a host, a git, a cvs, an svn, a chat, a wiki, a forum, a web app, a... whatever u like.  there's no central fascist to appease, it's up to you to decide what witch needs, and what to do.

the suggested philosophy of witch, fits somewhat, with the organisational structure of wicca.   ... i.e. there isnt really one.  it's more an undefined assortment of techniques.
though witch's name was born of the pun that exists in "burning witches" ("burning distro .ISOs to compact disk"), and was pursued because of a love of the witch scene in Monty Python's The Holy Grail, it is a nice fit (or "happy accident") that such a loose form as is found in wicca should be so apt for a distro.
So although there's not really anything of wicca about this free software distro we call witch, and to my knowledge, none of those who've frequented the #witchlinux irc, or been involved in it in any way, have ever practiced any witchcraft.
to be clear, witch was not made as a distro for witches.
you do not need to be a witch/warlock to use witch.  if you seek some equivalent of christian ubuntu or islamic ubuntu, but for witches, then you will be disapointed by existing witches.   ... you are of course free to make such a witch if you want.
so dont expect us to give you tarrot readings or any of that stuff.   we make free software and free software distributions, not predictions and prophecies, nor curses and potions.
sorry i've no neat soundbite for you to grasp the wicca-esq structure/philosophy... i'll chalk that up to not wanting to let such soundbites to be used to excuse stupidity.  ^_^  (an idea from exherbo)

repo_name: orbea/witch

license: mit


code:
rspm
====

> rosetta stone package manager

about rspm
----------

*  rspm is a package manager command wrapper.
*  rspm is not an actual package manager itself.
*  rspm may be useful where package management commands traverse different distributions / package managers, like in some instances of scripting.
*  rspm was initially created as part of witchcraft, but now intends to be stand-alone
*  rspm is still barely even a proof of concept (please inform #witchlinux on irc.freenode.irc if you have used/deployed rspm)
*  rspm was still somewhere between vaporware and proof of concept at time of writing.


code:
as is currently:  install, remove, update, upgrade and search commands are preliminarily coded for portage, paludis's cave, apt-get, slaptget, pacman, and zypper.  (please pop into #witchlinux on irc.freenode.net to suggest others to add, or other ideas, fixes, etc.)

### the original jotting down of early notion:
# rspm command : package manager used : command used
rspm install : apt-get : apt-get install
rspm update : apt-get : apt-get update

##^  i think i only scrawled that before going off n writing rspm.sh.  see rspm.sh for the real meat.  i've tried to keep the code as clear and just-enough as possible, though the idea below may require either a bit of muddying that clarity, and or a radical refactoring.   ... not to mention the issues surrounding the nuances of each package manager.

### the simplification/shortification rethink:

#install

rspm install packagename
rspm -i packagename
rspm packagename

#remove/uninstall

rspm remove packagename
rspm uninstall packagename #also echoes to use remove/-r
rspm -r packagename
rspmr packagename

#sync/update (to refresh available packages list)

rspm sync
rspm update
rspm -s
rspms

#update/upgrade (ups installed software to newest)

rspm upgrade
rspm -u
rspmu

#sync & upgrade

rspmsu

#search/find

rspm search packagename
rspm find packagename
rspm -f packagename
rspmf packagename


code:
#!/bin/bash

# Rosetta Stone Package Manager
# https://github.com/Digit/witch/issues/18

#this is just an initial laying out ... much change is expected, and it is not expected to work yet.

PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)

#basics first. AFTER we get these, we can futz over the finer grained nuanced commands.
#install
#remove
#update
#upgrade
#search

case $PACKAGEMGR in
  "PORTAGE")
    case $1 in
      "install") emerge $2 ;;
      "remove") emerge -C $2 ;;
      "update") emerge --sync ;;
      "upgrade") emerge -DuN ;;
      "search")
        if [ $eix == "true" ]; then #FIXME
          eix $2
        else
          emerge --search $2
        fi
      ;;
    esac
  ;;

  "PALUDIS")
    case $1 in
      "install") cave resolve -x $2 ;;
      "remove") cave resolve -Px $2 ;; # ~ er, i've forgotten the paludis commands.  ...
      "update") cave sync ;;
      "upgrade") cave resolve world -x
      "search") cave search $2 ;;
    esac
    # etc
  ;;

  "APTGET")
    case $1 in
      "install") apt-get install $2 ;;
      "remove") apt-get remove $2 ;;
      "update") apt-get update ;;
      "upgrade") apt-get upgrade ;;
      "search") apt-cache search $2 ;;
    esac
  ;;

  "SLAPTGET")
    case $1 in
      "install") slapt-get install $2 ;;
      "remove") slapt-get remove $2 ;;
      "update") slapt-get update ;;
      "upgrade") slapt-get upgrade ;;
      "search") slapt-cache search $2 ;; #that right?? FIXME
    esac
  ;;

  "XBPS")
    case $1 in
      "install") xbps-install $2 ;;
      "remove") xbps-remove $2 ;;
      "update") xbps-install -S ;;
      "upgrade") xbps-install -Su ;;
      "search") xbps-query -Rs $2 ;;
    esac
  ;;

  "PACMAN")
    case $1 in
      "install") pacman -S $2 ;;
      "remove") pacman -Rc $2 ;;
      "update") pacman -Sy ;;
      "upgrade") pacman -Syu ;;
      "search") pacman -Ss $2 ;;
    esac
  ;;

  "ZYPPER")
    case $1 in
      "install") zypper in $2 ;;
      "remove") zypper rm $2 ;;
      "update") zypper ref ;;
      "upgrade") zypper up ;;
      "search") zypper se $2 ;;
    esac
  ;;

  "GUIX")
    case $1 in
      "install") guix package -i $2 ;;
      "remove") guix package -r $2 ;;
      "update") guix pull ;;
      "upgrade") guix package -u $2 ;;
      "search") guix package -s $2 ;;
    esac
  ;;

  "SLACKWARE")
    case $1 in
      "install") installpkg $2 ;;
      "remove") removepkg $2 ;;
      "update") slackpkg update; slackpkg install-new; slackpkg upgrade-all; slackpkg clean-system ;;
      "upgrade") upgradepkg $2 ;;
      "reinstall") upgradepkg --reinstall $2 ;;
      "search") slackpkg search $2 ;;
     esac
   ;;
esac

# ^ something like that.   basic jist.   now clean up, and repeat for other package managers.
# feel free to come up with a better way... this is just an initial jotting down of the concept... not clean code.  SO LETS NOT PUT rspm COMMANDS ANYWHERE UNTIL IT IS REAL WORKING CODE.  ;)


code:
For Slackware you have an additional command of reinstall

rspm reinstall pkgnam.t?z

For the udpate command be sure to have your slackpkg mirror
and blacklist correctly configured.


code:
witchcraft
==========

WARNING - THIS STUFF IS HELLA OUTTA DATE... read with that caution in mind.

witchcraft is where /most/ of the action is at these days.  here's my notion for it:
	http://ompldr.org/vaTdvcg/digitswitchcraftnotion2013april.png

~ HEAVY REFACTOR-LIFTING DONE, please help (or pester digit) to clean up comments etc. ~

witch version 0.00
come to a witch chat here: http://wastedartist.com/distros/witch/witchat.html
(that's where all the action happens.  lurkers welcome.)

(Run at your own risk.  Strongly advised to read and debug if necessary before attempting to run. ~ digit)

(Warning,  This will probaly most likely cause damage to your system.  It might not even run.  Not for the faint hearted. ~jony123)
(Don't you beleave me?  Im serious,  I probaly wont even run the script myself for ages to build a system!!! ~jony123)
(You still want to try,  Well I cant stop you ~jony123)

(actually it's pretty close to being called a beta test now - Digit 20121221)
(well, maybe not that close. lol. - Digit 20130314)

to run witchcraft, download https://github.com/Digit/witch/archive/master.zip and away you go from there.

To run the witch installer script simply execute it on a command line. Before you do so, you'll need to chmod +x the whole directory you've git cloned.

	chmod -R +x ./witch
	cd ./witch

Then, you run the script:

	./witchcraft*.sh

or

	sh witchcraft*.sh

Please note that you'll need to be in the current directory for the script to run successfully.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% warning, out of date, from pre-refactoring %%%%%%
%%%%%%%%   tester help sugestion tip thingy   %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
to test the witchcraft script's gentoo instalation:
first, you'll need to:
download the systemrescuecd
download & install virtualbox
    launch virtualbox
        create a new linux gentoo machine,
            give it as much ram as you think is healthy for your computer to handle virtualising,
            and a reasonably large virtual hd  (idk how small is safe)
        set virtualbox's cd drive to have the systemrescuecd's iso file in it
        start the new virtual machine
        wait for systemrescuecd to finish booting, then type startx, and hit enter.
            open midori, go get the witchcraft script.
                https://raw.github.com/Digit/witch/master/witchcraft2012-1-0.sh
                    ^ probably the right branch, check with digit in #witchlinux
            copy n paste that into a file somewhere in "$PATH"
                (i.e. /bin/witchcraft is good)
            make it executable
                (chmod +x /bin/witchcraft)
            then run it
                (i.e just type witchcraft into the terminal and hit enter).
                follow the steps,
                heed the warnings,
                take great care to enter everything correctly.
                but feel safe, knowing this is just a virtual machine.
                to test the script portion that's being worked on:
                    first question: answer b
                    second question: answer b again
                    third question: answer 1
                    i'll let you figure out the rest from there.
                or feel free to explore other paths in the script,
                    but be prepared for disapointment, and messages of incomplete
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%
%%
%

   ~alpha notes ~
~~~~~~~~~~~~~~~~~~~~
Until witchcraft gets out of alpha, you may want to do this in a virtual machine running systemrescuecd or another gentoo-based live distro (or other distro even).

iso remastery has been removed for a complete re-write.
only the proper gentoo install section is written so far. (will go through a second refunctionising and revariablising to accomodate funtoo, exherbo etc with greater ease, later, once we suss the chroot issue, and get working installs out of it)

soon. ''_''

~~~~~~~~~~~~~~~~~~~~


code:
##########
##########
##########
##########
## bedrock

read -p "enter the name of your new distro: " DISTRONAME
echo $DISTRONAME > $WITCH/config.base.txt #1st line

METADISTRO=BEDROCK
echo $METADISTRO >> $WITCH/config.base.txt #2nd line

# Add ARCH and PACKAGEMGR!!!

echo "======================"
DISTRONAME=$(sed -n '1p' $WITCH/config.base.txt)
METADISTRO=$(sed -n '2p' $WITCH/config.base.txt)
ARCH=$(sed -n '3p' $WITCH/config.base.txt)
PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)
echo "DISTRONAME: $DISTRONAME"
echo "METADISTRO: $METADISTRO"
echo "ARCH: $ARCH"
echo "PACKAGEMGR: $PACKAGEMGR"
echo "======================"
sleep 1

# you are going to want to make extensive use of this link: http://opensource.osu.edu/~paradigm/bedrock/1.0alpha1/install.html ; for the making of this variable.
echo "sorry this part is just a place-holder so far.  please check out http://opensource.osu.edu/~paradigm/bedrock/ to garner some idea why digit is so keen to start to include bedrock ahead of funtoo and exherbo, and ahead of even getting the gentoo install completed."

echo
sleep 2
echo

echo "you may want to review http://opensource.osu.edu/~paradigm/bedrock/1.0alpha1/install.html#Partitioning before deciding how to partition"
./tools.d/driveprep.sh

echo "you may want to review \"http://opensource.osu.edu/~paradigm/bedrock/1.0alpha1/install.html#Creating the directory structure\" to see what's going on here."
echo "cd /mnt/$DISTRONAME"
cd /mnt/$DISTRONAME

echo "mkdir -p bin boot/extlinux dev etc/init.d home lib/modules opt/bedrock/bin opt/bedrock/sbin opt/bedrock/etc proc root sbin sys tmp usr/src var/lib/urandom"
mkdir -p bin boot/extlinux dev etc/init.d home lib/modules opt/bedrock/bin opt/bedrock/sbin opt/bedrock/etc proc root sbin sys tmp usr/src var/lib/urandom

echo "The default permissions on most of these should be fine. However, /tmp needs to be writable by no-root users:"
echo "chmod a+rwxt tmp"
chmod a+rwxt tmp

echo "you may want to review http://opensource.osu.edu/~paradigm/bedrock/1.0alpha1/install.html#Optional directories before answering this question:"
echo "do you want these optional directories?"
read -p "mkdir -p lib/firmware \#(y/n)?"
if [ "REPLY" == "y" ]
then
  mkdir -p lib/firmware
  read -p "mkdir -p var/chroot \#(y/n/e)"

  if [ "REPLY" == "y" ]
  then
    mkdir -p var/chroot

  elif [ "REPLY" == "e" ]
  then
    echo "where would you like to put it then?"
    read $BEDCHROOTS
    mkdir -p $BEDCHROOTS
  fi
fi

echo "you may want to review \"http://opensource.osu.edu/~paradigm/bedrock/1.0alpha1/install.html#Download core Bedrock Linux component sources\" for downloading of core components"

echo "i tried to warn you that this bedrock section was incomplete, now look what you've done... stuck where you left off.  ... that's ok though, just follow the last link it was suggested you may have wanted to review, and carry on from there."


code:
##########
##########
##########
##########
## bedrock - official installer

read -p "enter the name of your new distro: " DISTRONAME
echo $DISTRONAME > $WITCH/config.base.txt #1st line

METADISTRO=BEDROCK
echo $METADISTRO >> $WITCH/config.base.txt #2nd line

# Add ARCH and PACKAGEMGR!!!

echo "======================"
DISTRONAME=$(sed -n '1p' $WITCH/config.base.txt)
METADISTRO=$(sed -n '2p' $WITCH/config.base.txt)
ARCH=$(sed -n '3p' $WITCH/config.base.txt)
PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)
echo "DISTRONAME: $DISTRONAME"
echo "METADISTRO: $METADISTRO"
echo "ARCH: $ARCH"
echo "PACKAGEMGR: $PACKAGEMGR"
echo "======================"
sleep 1

#not sure if any of that^ is necessary for this method.

git clone https://github.com/paradigm/bedrocklinux-installer
cd bedrocklinux-installer
./bedrocklinux-installer


code:
METADISTRO=DEBIAN
#hehe.  debootstrapping's close enough to a gentoo style stage three that we aught include it too.  :)  yay.
echo "this is another hole yet to be filled in the script.  you could consider a manual debootstrap debian install. http://www.debian-administration.org/articles/426 see?"
#possibly out of date, but a good suggestion of a place to start for adding debian-base to this script.


code:
###########
###########
###########
###########
### exherbo

METADISTRO=EXHERBO
#kitting out the script to handle exherbo installs too will be the coolest part of this.  it will ensure that the structure is more robust to handle multiple install types.
echo "this bit aint been made yet.  but it\'s easy enough.. just follow along http://www.exherbo.org/docs/install-guide.html, and enter it into this script the same way as was done for the
installgentoo and installfuntoo sections.  easy.   ... er... or do it right, n hook it up with all the cool variables, future proofing it."


code:
##########
##########
##########
##########
### funtoo

METADISTRO=FUNTOO
#section removed for re-functionising of the script.
#these base distro choices, will set variables which will control the shape of various options (/install sections) suited to that distro (e.g. differences of stuff included in the stage3s)
#this will be really cool simple additions in some places, like if metadistro = funtoo then diddle-de-dee ~ maybe.  not rly decided on which route to take with sorting out for the multi-distro bases.
echo "script section incomplete.  open your irc software and join \#witchlinux on irc.freenode.net to get the latest of what\'s going on, and to join in, in building the script. :)"


code:
##########
##########
##########
##########
### gentoo

## this section might be included in a seperate file.
read -p "enter the name of your new distro (anything you like - but keep it short and sweet): " DISTRONAME
echo $DISTRONAME > $WITCH/config.base.txt #1st line

METADISTRO=GENTOO #for further revisions, there's sense in sort-of modularising this with even more functions, so each option can be called from a series of options.  make sense?  good.
#ARCH="uname -m" #setting this bellow ~ remove if it's all good.

PACKAGEMGR=portage # will need to get this bit made paludis savvy, giving the user the choice, but for now, just telling it to be portage, will do.
#read -p "what is the name of the package manager you want? portage/paludis?" PACKAGEMGR
#echo $PACKAGEMGR was selected as the package manager you want to have installed
#^ but will leave that as the simple form until we've got some headway with paludis (and thus, likely once got some exherbo stuff working too

echo $METADISTRO >> $WITCH/config.base.txt #2nd line
uname -m >> $WITCH/config.base.txt #3rd line
echo $PACKAGEMGR >> $WITCH/config.base.txt #4th line

echo "======================"
DISTRONAME=$(sed -n '1p' $WITCH/config.base.txt)
METADISTRO=$(sed -n '2p' $WITCH/config.base.txt)
ARCH=$(sed -n '3p' $WITCH/config.base.txt)
PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)
echo "DISTRONAME: $DISTRONAME"
echo "METADISTRO: $METADISTRO"
echo "ARCH: $ARCH"
echo "PACKAGEMGR: $PACKAGEMGR"
echo "======================"
sleep 1

clear && $WITCH/procedure.d/driveprep.sh
clear && $WITCH/procedure.d/stageinstall.sh
clear && $WITCH/procedure.d/installpackagemanager.sh
clear && $WITCH/procedure.d/initialmakeconf.sh

# wichroot is only required for actual systems
# for Learnix systems it's not required.
if [ "$DIMG_RUN" == "true" ]; then
  echo "The creation of your system has finished."
else
  clear && $WITCH/procedure.d/prechroot.sh
  clear && $WITCH/procedure.d/wichroot.sh
fi
#...and there we hit the end of the gentoo installation portion of witchcraft
#job done.  what's next... u want the deskfigselector() now dont you?
#good, cos it should already be lined up to run, thnx to the stage3 function (as a top level option from cauldren), which calls it straight after running the distroselector function.
#first you get run the witchcraft, thn you choose the cauldren, then you choose a proper stage3 install, then you get the distro, then you get the desktop.  ^_^
#... is how this path rolls.  ^_^


code:
##########
##########
##########
##########
### gentoo

## this section might be included in a seperate file.
read -p "enter the name of your new distro (anything you like - but keep it short and sweet): " DISTRONAME
echo $DISTRONAME > $WITCH/config.base.txt #1st line

METADISTRO=KILLX #for further revisions, there's sense in sort-of modularising this with even more functions, so each option can be called from a series of options.  make sense?  good.
#ARCH="uname -m" #setting this bellow ~ remove if it's all good.

PACKAGEMGR=SLACKPKG # will need to get this bit made savvy to tinycore's 4-ways packagemanagement model... er... or do we?  maybe a couple of the ways ought be defined here?  idk... this is all getting sloppilly thrown in here for starters.  no idea how to do tinycopre, just know witch needs to do tinycore too.  ;)

#read -p "what is the name of the package manager you want? thisway/thatway?" PACKAGEMGR
#echo $PACKAGEMGR was selected as the package manager you want to have installed

echo $METADISTRO >> $WITCH/config.base.txt #2nd line
uname -m >> $WITCH/config.base.txt #3rd line
echo $PACKAGEMGR >> $WITCH/config.base.txt #4th line

echo "======================"
DISTRONAME=$(sed -n '1p' $WITCH/config.base.txt)
METADISTRO=$(sed -n '2p' $WITCH/config.base.txt)
ARCH=$(sed -n '3p' $WITCH/config.base.txt)
PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)
echo "DISTRONAME: $DISTRONAME"
echo "METADISTRO: $METADISTRO"
echo "ARCH: $ARCH"
echo "PACKAGEMGR: $PACKAGEMGR"
echo "======================"
sleep 1

clear && echo "WARNING, THIS IS JUST A STUB, IT WONT ACTUALLY INSTALL ANYTHING... YET  ... come join the hackup on #witchlinux on irc freenode net."
sleep 2
echo "have a look at:  http://docs.killx.org/docs.html
killx's install page.
"

#these lines of course would take one to the rest of the gentoo install... shall these scripts get broadened for use with any base distro, or will tinycore (and others) have to go their own way?
#clear && $WITCH/procedure.d/driveprep.sh
#clear && $WITCH/procedure.d/stageinstall.sh
#clear && $WITCH/procedure.d/installpackagemanager.sh
#clear && $WITCH/procedure.d/initialmakeconf.sh

#... i have no idea what wei2912 is on about with the learnix/diskimager thing...
# wichroot is only required for actual systems
# for Learnix systems it's not required.
if [ "$DIMG_RUN" == "true" ]; then
  echo "The creation of your system has finished."
else

#more old bits from the gentoo, which woulda been clearer if it didnt have this strange if^ thing happening.
#  clear && $WITCH/procedure.d/prechroot.sh
#  clear && $WITCH/procedure.d/wichroot.sh
fi

#...and there we hit the end of the tinycore installation portion of witchcraft
#job done.  what's next... u want the deskfigselector() now dont you?
#good, cos it should already be lined up to run, thnx to the stage3 function (as a top level option from cauldren), which calls it straight after running the distroselector function.
#first you get run the witchcraft, thn you choose the cauldren, then you choose a proper stage3 install, then you get the distro, then you get the desktop.  ^_^
#... is how this path rolls.  ^_^

###^^^ i know, it's all a mess.  one had to do it though.  one had to just grab the gentoo one and call it tinycore n amend as necessary.


code:
#so, yeah, why hasnt anyone thrown in a pimp slack installer section yet... slack can go many ways... this portion of witchcraft will be iiiiiiinteresting.

#why, just today, wgreenhouse was saying in #witchlinux that there oughta be merely some minimal tag file shenanagans, n already witches be pimp,  yus.  booya.

## no seriously, lets hack this up.  slack in the witchcraft, not just in the whoever wherever.  :)   *looks at digit and wgreenhouse*

# http://slackworld.berlios.de/2007/chroot_howto.html how about one like this?  very nice n thorough chroot guide.
# ^ by following this guide, and having one eye on the way the gentoo installer does it, we might even be able to carve out a poly-distro/distro-agnostic means of doing the chroot installs, get it all "unified and dynamic" a bit more.


code:
##########
##########
##########
##########
### gentoo

## this section might be included in a seperate file.
read -p "enter the name of your new distro (anything you like - but keep it short and sweet): " DISTRONAME
echo $DISTRONAME > $WITCH/config.base.txt #1st line

METADISTRO=TINYCORE #for further revisions, there's sense in sort-of modularising this with even more functions, so each option can be called from a series of options.  make sense?  good.
#ARCH="uname -m" #setting this bellow ~ remove if it's all good.

PACKAGEMGR=portage # will need to get this bit made savvy to tinycore's 4-ways packagemanagement model... er... or do we?  maybe a couple of the ways ought be defined here?  idk... this is all getting sloppilly thrown in here for starters.  no idea how to do tinycopre, just know witch needs to do tinycore too.  ;)

#read -p "what is the name of the package manager you want? thisway/thatway?" PACKAGEMGR
#echo $PACKAGEMGR was selected as the package manager you want to have installed

echo $METADISTRO >> $WITCH/config.base.txt #2nd line
uname -m >> $WITCH/config.base.txt #3rd line
echo $PACKAGEMGR >> $WITCH/config.base.txt #4th line

echo "======================"
DISTRONAME=$(sed -n '1p' $WITCH/config.base.txt)
METADISTRO=$(sed -n '2p' $WITCH/config.base.txt)
ARCH=$(sed -n '3p' $WITCH/config.base.txt)
PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)
echo "DISTRONAME: $DISTRONAME"
echo "METADISTRO: $METADISTRO"
echo "ARCH: $ARCH"
echo "PACKAGEMGR: $PACKAGEMGR"
echo "======================"
sleep 1

clear && echo "WARNING, THIS IS JUST A STUB, IT WONT ACTUALLY INSTALL ANYTHING... YET  ... come join the hackup on #witchlinux on irc freenode net."
sleep 2
echo "have a look at: http://distro.ibiblio.org/tinycorelinux/install.html
tinycore's install page.
"

#these lines of course would take one to the rest of the gentoo install... shall these scripts get broadened for use with any base distro, or will tinycore (and others) have to go their own way?
#clear && $WITCH/procedure.d/driveprep.sh
#clear && $WITCH/procedure.d/stageinstall.sh
#clear && $WITCH/procedure.d/installpackagemanager.sh
#clear && $WITCH/procedure.d/initialmakeconf.sh

#... i have no idea what wei2912 is on about with the learnix/diskimager thing...
# wichroot is only required for actual systems
# for Learnix systems it's not required.
if [ "$DIMG_RUN" == "true" ]; then
  echo "The creation of your system has finished."
else

#more old bits from the gentoo, which woulda been clearer if it didnt have this strange if^ thing happening.
#  clear && $WITCH/procedure.d/prechroot.sh
#  clear && $WITCH/procedure.d/wichroot.sh
fi

#...and there we hit the end of the tinycore installation portion of witchcraft
#job done.  what's next... u want the deskfigselector() now dont you?
#good, cos it should already be lined up to run, thnx to the stage3 function (as a top level option from cauldren), which calls it straight after running the distroselector function.
#first you get run the witchcraft, thn you choose the cauldren, then you choose a proper stage3 install, then you get the distro, then you get the desktop.  ^_^
#... is how this path rolls.  ^_^

###^^^ i know, it's all a mess.  one had to do it though.  one had to just grab the gentoo one and call it tinycore n amend as necessary.


code:
##########
##########
##########
##########
# cauldren

### dev note... should really gut out ALL functions, so no functions are defined within a function.  ... it'd make it much cleaner... and probably make it work.
#### once the function gutting is done, remove this guff^

## cauldren is called from the install option of witchcraft2011, and leads to the various installs (installgentoo, installfuntoo, etc)

#distroselectormk2 for now.

#dev notes n reminders

## partitions n fs
#mountings
#stage3
#chroot
#package managment
#configure  ~~~~~~
#kernel
#bootloader
#users
#startup daemons
#final packages, configs n post-install scripts
#cleanup & remove stage3 tarball & remove package manager tarball

#mntchrt and umntchrt
#one builds a chroot of a folder and the other umounts it automagically
# http://pastebin.com/T9Wb0GiB http://pastebin.com/ETPZ23Ja thnx to rstrcogburn.

# rstrcog's exherbo global useflags http://pastebin.com/QQbeUpk5
# tho he prolly has new ones now.

############
############
# stage3

function stage3 {

  #called from second top layer in cauldren, once you select to do a proper stage3 install.

  #currently just calls the distroselector function, to select which route of stage3 install to use, (gentoo, funtoo, etc) and then the desktop selector
  #once the refunctionising is done, this may change.

  $WITCH/distroselect.sh
  if [ $DIMG_RUN == "true" ]; then
    echo "Skipping deskfig because you're running Disk IMaGe mode..."
  else
    $WITCH/deskfig.sh
  fi
}

############
############
# simpleinstall

# dev update... there was that guy... i forget who... i think im following him on github, has that simple install...  could consider hacking that up to make a direct automated (as much as possible), rowan witch install.
#simpleinstall... see about adding a simplified install for presets.
#one way to consider for this, add a variable that would permit stage3 install, and just automatically select all the defaults as much as is possible.

function simpleinstall {
  echo "incomplete portion of script, sorry"
  sleep 2
  cauldren
}

############
############
# cauldren

function cauldren {
  clear
  sleep 1
  echo "ok, so you want to install some hardcore nix."
  echo
  echo "cauldren first question"
  echo
  $WITCH/color.sh QUESTION "what do you want to do?"
  $WITCH/color.sh GREEN "
    A.    simple install  -  less choices, control, flexibility.  just presets.
    B.    proper install  -  pick which metadistro, and which desktop config.
  C.    v leet install  -  do it all yourself"

  read CauldrenOption

  case $CauldrenOption in
    A|a)
      echo "Choice was \"$CauldrenOption\". sorry, this part of the script is still under construction.  running it in a couple seconds anyway"
      sleep 5
      simpleinstall
    ;;
    B|b)
      echo "Choice was \"$CauldrenOption\". warning, this part of the script might still be a little buggy.  running it in a couple seconds anyway"
      sleep 5
      stage3
    ;;
    C|c)
      echo "Choice was \"$CauldrenOption\". this part of the script is complete.  for full manual install, simply press ctrl-C at any time to enter fully manual mode."
      echo "you ub0r l33t... i have a feeling we might get hacked by you"
      echo "exiting to full manual mode now"
      exit
    ;;
    *)
      echo "Valid Choices are A,B,C"
      exit 1
    ;;
  esac
}

if [ "$DIMG_RUN" == "true" ]; then
  stage3 # proper install
else
  cauldren
fi


code:
# a board guy who loves colors.
Reset='\e[0m'
Red='\e[1;31m'
Green='\e[1;32m'
Yellow='\e[1;33m'

ERROR() {
  echo -e "[${Red}ERROR${Reset}] ${Yellow}$1${Reset}"
}

WARNING() {
  echo -e "[${Yellow}WARNING${Reset}] ${Green}$1${Reset}"
}

QUESTION() {
  echo -e "${Yellow}**${Reset} ${Green}$1${Reset} ${Yellow}**${Reset}"
}

RED() {
  echo -e "${Red}$1${Reset}"
}

GREEN() {
  echo -e "${Green}$1${Reset}"
}

YELLOW() {
  echo -e "${Yellow}$1${Reset}"
}

case "$1" in
  "ERROR") ERROR "$2" ;;
  "WARNING") WARNING "$2" ;;
  "QUESTION") QUESTION "$2" ;;
  "RED") RED "$2" ;;
  "GREEN") GREEN "$2" ;;
  "YELLOW") YELLOW "$2" ;;
esac


code:
getdeskfig () {
  #echo "select how you would like to get your deskfig?"
  #read $METHODGETDESKFIG
  # i will put in a case esac doodad in here to gib more flex

  #but for now...
  echo "ok son, where are you hiding your deskfig script at?"
  read $DESKFIGSCRIPTLOC
  DESKFIGSCRIPTLOC

  echo "ok seriously, i have only just thrown this simple deskfig bit in as a place holder idk wtf yet"
  #it will grow, oh yes, it will grow.  ... grow to accomodate uploading and sharing and reviewing, etc.  communitization inbuilt to the software, dawg.
}

getdeskfig #From the start


code:
##########
# rowan
###(still just in emerge commands.)

echo "======================"
PACKAGEMGR=$(sed -n '4p' $WITCH/config.base.txt)
echo "PACKAGEMGR: $PACKAGEMGR"
echo "======================"

echo "you have chosen to install the rowan deskfig.  good choice.  is your nick Digit?"

case $PACKAGEMGR in
  portage) emerge -qv scrotwm yeahconsole tmux links mc mplayer rtorrent irssi htop bc ;;
  *)
    echo "the package manager: $PACKAGEMGR is invalid for rowan. Redirecting you back..."
    $WITCH/deskfig.sh # that seems sane right?  certainly more sane than sending the user into rewic (the remastery witchcraft stuff).
  ;;
esac

echo "sorry, the rest of the configuration of rowan has not yet been written into this script"