code: func env(b *Builder, args []string, attributes map[string]bool, flagArgs []string, original string) error {
  	if len(args) == 0 {
  		return errAtLeastOneArgument("ENV")
  	}
  
  	if len(args)%2 != 0 {
  		// should never get here, but just in case
  		return errTooManyArguments("ENV")
  	}
  
  	// TODO/FIXME/NOT USED
  	// Just here to show how to use the builder flags stuff within the
  	// context of a builder command. Will remove once we actually add
  	// a builder command to something!
  	/*
  		flBool1 := b.flags.AddBool("bool1", false)
  		flStr1 := b.flags.AddString("str1", "HI")
  
  		if err := b.flags.Parse(); err != nil {
  			return err
  		}
  
  		fmt.Printf("Bool1:%v\n", flBool1)
  		fmt.Printf("Str1:%v\n", flStr1)
  	*/
  
  	for j := 0; j < len(args); j++ {
  		// name  ==> args[j]
  		// value ==> args[j+1]
  		newVar := args[j] + "=" + args[j+1] + ""
  		gotOne := false
  		for i, envVar := range b.RunConfig.Env {
  			envParts := strings.SplitN(envVar, "=", 2)
  			if envParts[0] == args[j] {
  				b.RunConfig.Env[i] = newVar
  				b.Env = append([]string{newVar}, b.Env...)
  				gotOne = true
  				break
  			}
  		}
  		if !gotOne {
  			b.RunConfig.Env = append(b.RunConfig.Env, newVar)
  			b.Env = append([]string{newVar}, b.Env...)
  		}
  		j++
  	}
  
  	return nil
  }
docs: // ENV foo bar
  //
  // Sets the environment variable foo to bar, also makes interpolation
  // in the dockerfile available from the next statement on via ${foo}.
  //