title: sbt 0.11 run task examples needed
body: <p>My projects are still using sbt 0.7.7 and I find it very convenient to have utility classes that I can run from the sbt prompt. I can also combine this with properties that are separately maintained - typically for environment related values that changes from hosts to hosts. This is an example of my project definition under the <code>project/build</code> directory:</p>
  
  <pre><code>class MyProject(info: ProjectInfo) extends DefaultProject(info) {
    //...
    lazy val extraProps = new BasicEnvironment {
      // use the project's Logger for any properties-related logging
      def log = MyProject.this.log
      def envBackingPath = path("paths.properties")
      // define some properties that will go in paths.properties
      lazy val inputFile = property[String]
    }
  
    lazy val myTask = task { args =&gt;
      runTask(Some("foo.bar.MyTask"),
        runClasspath, extraProps.inputFile.value :: args.toList).dependsOn(compile)
        describedAs "my-task [options]"
    }   
  }
  </code></pre>
  
  <p>I can then use my task as <code>my-task option1 option2</code> under the sbt shell.</p>
  
  <p>I've read the new sbt 0.11 documentation at <a href="https://github.com/harrah/xsbt/wiki">https://github.com/harrah/xsbt/wiki</a> including the sections on <a href="https://github.com/harrah/xsbt/wiki/Tasks">Tasks</a> and <a href="https://github.com/harrah/xsbt/wiki/TaskInputs">TaskInputs</a> and frankly I'm still struggling on how to accomplish what I did on 0.7.7. </p>
  
  <p>It seems the extra properties could simply be replaced a separate <code>environment.sbt</code>, that tasks have to be defined in <code>project/build.scala</code> before being set in <code>build.sbt</code>. It also looks like there is completion support, which looks very interesting.</p>
  
  <p>Beyond that I'm somewhat overwhelmed. How do I accomplish what I did with the new sbt?</p>