diff --git a/cmd/draft/connect.go b/cmd/draft/connect.go index 3b39b7f..d9e7f7d 100644 --- a/cmd/draft/connect.go +++ b/cmd/draft/connect.go @@ -7,6 +7,7 @@ import ( "io/ioutil" "os" "os/signal" + "path/filepath" "syscall" "time" @@ -79,7 +80,7 @@ func (cn *connectCmd) run(runningEnvironment string) (err error) { ports = overridePorts } - buildID, err := getLatestBuildID() + buildID, err := getLatestBuildID(deployedApp.Name) if err != nil { return err } @@ -143,9 +144,9 @@ func writeContainerLogs(out io.Writer, in io.ReadCloser, containerName string) e } } -func getLatestBuildID() (string, error) { +func getLatestBuildID(appName string) (string, error) { h := draftpath.Home(homePath()) - files, err := ioutil.ReadDir(h.Logs()) + files, err := ioutil.ReadDir(filepath.Join(h.Logs(), appName)) if err != nil { return "", err } diff --git a/cmd/draft/logs.go b/cmd/draft/logs.go index 0ce40a7..3db3848 100644 --- a/cmd/draft/logs.go +++ b/cmd/draft/logs.go @@ -7,12 +7,17 @@ import ( "path/filepath" "github.com/Azure/draft/pkg/draft/draftpath" + "github.com/Azure/draft/pkg/draft/local" "github.com/hpcloud/tail" "github.com/spf13/cobra" ) const logsDesc = `This command outputs logs from the draft server to help debug builds.` +var ( + runningEnvironment string +) + type logsCmd struct { out io.Writer appName string @@ -35,7 +40,12 @@ func newLogsCmd(out io.Writer) *cobra.Command { Long: logsDesc, PreRunE: lc.complete, RunE: func(cmd *cobra.Command, args []string) error { - b, err := getLatestBuildID() + deployedApp, err := local.DeployedApplication(draftToml, runningEnvironment) + if err != nil { + return err + } + lc.appName = deployedApp.Name + b, err := getLatestBuildID(lc.appName) if err != nil { return fmt.Errorf("cannot get latest build: %v", err) } @@ -51,6 +61,7 @@ func newLogsCmd(out io.Writer) *cobra.Command { f := cmd.Flags() f.BoolVar(&lc.tail, "tail", false, "tail the logs file as it's being written") f.UintVar(&lc.line, "line", 20, "line location to tail from (offset from end of file)") + f.StringVarP(&runningEnvironment, environmentFlagName, environmentFlagShorthand, defaultDraftEnvironment(), environmentFlagUsage) return cmd } @@ -67,7 +78,7 @@ func (l *logsCmd) run(_ *cobra.Command, _ []string) error { } func (l *logsCmd) dumpLogs() error { - f, err := os.Open(filepath.Join(l.home.Logs(), l.buildID)) + f, err := os.Open(filepath.Join(l.home.Logs(), l.appName, l.buildID)) if err != nil { return fmt.Errorf("could not read logs for %s: %v", l.buildID, err) }