cmd/aedeploy: add verbose logging

Updates #35

Change-Id: I34991b5dca3d11f016f8272729591450695e25ff
diff --git a/cmd/aedeploy/aedeploy.go b/cmd/aedeploy/aedeploy.go
index aa35b0c..95b9f49 100644
--- a/cmd/aedeploy/aedeploy.go
+++ b/cmd/aedeploy/aedeploy.go
@@ -19,6 +19,7 @@
 	"go/build"
 	"io"
 	"io/ioutil"
+	"log"
 	"os"
 	"os/exec"
 	"path/filepath"
@@ -39,7 +40,18 @@
 	fmt.Fprintf(os.Stderr, "\t%s gcloud --verbosity debug app deploy --version myversion ./app.yaml\tDeploy app to production\n", os.Args[0])
 }
 
+var verbose bool
+
+// vlogf logs to stderr if the "-v" flag is provided.
+func vlogf(f string, v ...interface{}) {
+	if !verbose {
+		return
+	}
+	log.Printf("[aedeploy] "+f, v...)
+}
+
 func main() {
+	flag.BoolVar(&verbose, "v", false, "Verbose logging.")
 	flag.Usage = usage
 	flag.Parse()
 	if flag.NArg() < 1 {
@@ -76,6 +88,7 @@
 
 // deploy calls the provided command to deploy the app from the temporary directory.
 func deploy() error {
+	vlogf("Running command %v", flag.Args())
 	cmd := exec.Command(flag.Arg(0), flag.Args()[1:]...)
 	cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr
 	if err := cmd.Run(); err != nil {
@@ -93,6 +106,7 @@
 // app files, and a map of full directory import names to original import names.
 func analyze(tags []string) (*app, error) {
 	ctxt := buildContext(tags)
+	vlogf("Using build context %#v", ctxt)
 	appFiles, err := appFiles(ctxt)
 	if err != nil {
 		return nil, err
@@ -185,6 +199,7 @@
 			continue
 		}
 
+		vlogf("Located %q (imported from %q) -> %q", i.path, i.fromDir, pkg.Dir)
 		result[pkg.Dir] = i.path
 
 		for _, v := range pkg.Imports {
@@ -200,6 +215,7 @@
 
 // copyTree copies srcDir to dstDir relative to dstRoot, ignoring skipFiles.
 func copyTree(dstRoot, dstDir, srcDir string) error {
+	vlogf("Copying %q to %q", srcDir, dstDir)
 	d := filepath.Join(dstRoot, dstDir)
 	if err := os.MkdirAll(d, 0755); err != nil {
 		return fmt.Errorf("unable to create directory %q: %v", d, err)
@@ -272,5 +288,6 @@
 		n := filepath.Join(".", f)
 		appFiles = append(appFiles, n)
 	}
+	vlogf("Found application files %v", appFiles)
 	return appFiles, nil
 }