Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ require (
github.com/fsnotify/fsnotify v1.6.0
github.com/getsentry/sentry-go v0.18.0
github.com/google/go-cmp v0.5.9
github.com/mattn/go-isatty v0.0.17
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/mholt/archiver/v3 v3.5.1
github.com/mitchellh/go-wordwrap v1.0.1
github.com/mitchellh/mapstructure v1.5.0
Expand Down
6 changes: 3 additions & 3 deletions pkg/app/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,11 @@ func Run(opts RunOpts) error {
if g.Verbose() {
switch source {
case lookup.SourceEnvironment:
fmt.Fprintf(opts.Stdout, "Fastly API endpoint (via %s): %s\n", env.Endpoint, endpoint)
fmt.Fprintf(opts.Stdout, "Fastly API endpoint (via %s): %s\n\n", env.Endpoint, endpoint)
case lookup.SourceFile:
fmt.Fprintf(opts.Stdout, "Fastly API endpoint (via config file): %s\n", endpoint)
fmt.Fprintf(opts.Stdout, "Fastly API endpoint (via config file): %s\n\n", endpoint)
default:
fmt.Fprintf(opts.Stdout, "Fastly API endpoint: %s\n", endpoint)
fmt.Fprintf(opts.Stdout, "Fastly API endpoint: %s\n\n", endpoint)
}
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/commands/acl/acl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ func TestACLList(t *testing.T) {
ListACLsFn: listACLs,
},
Args: args("acl list --service-id 123 --verbose --version 1"),
WantOutput: "Fastly API token not provided\nFastly API endpoint: https://api.fastly.com\nService ID (via --service-id): 123\n\nService Version: 1\n\nName: foo\nID: 456\n\nCreated at: 2021-06-15 23:00:00 +0000 UTC\nUpdated at: 2021-06-15 23:00:00 +0000 UTC\nDeleted at: 2021-06-15 23:00:00 +0000 UTC\n\nName: bar\nID: 789\n\nCreated at: 2021-06-15 23:00:00 +0000 UTC\nUpdated at: 2021-06-15 23:00:00 +0000 UTC\nDeleted at: 2021-06-15 23:00:00 +0000 UTC\n",
WantOutput: "Fastly API token not provided\nFastly API endpoint: https://api.fastly.com\n\nService ID (via --service-id): 123\n\nService Version: 1\n\nName: foo\nID: 456\n\nCreated at: 2021-06-15 23:00:00 +0000 UTC\nUpdated at: 2021-06-15 23:00:00 +0000 UTC\nDeleted at: 2021-06-15 23:00:00 +0000 UTC\n\nName: bar\nID: 789\n\nCreated at: 2021-06-15 23:00:00 +0000 UTC\nUpdated at: 2021-06-15 23:00:00 +0000 UTC\nDeleted at: 2021-06-15 23:00:00 +0000 UTC\n\n",
},
}

Expand Down
2 changes: 2 additions & 0 deletions pkg/commands/aclentry/aclentry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@ var listACLEntriesOutputPageTwo = `SERVICE ID ID IP SUBNET NEGATED

var listACLEntriesOutputVerbose = `Fastly API token not provided
Fastly API endpoint: https://api.fastly.com

Service ID (via --service-id): 123

ACL ID: 123
Expand All @@ -372,6 +373,7 @@ Comment: bar
Created at: 2021-06-15 23:00:00 +0000 UTC
Updated at: 2021-06-15 23:00:00 +0000 UTC
Deleted at: 2021-06-15 23:00:00 +0000 UTC

`

func TestACLEntryUpdate(t *testing.T) {
Expand Down
5 changes: 4 additions & 1 deletion pkg/commands/authtoken/authtoken_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,7 @@ func listTokenOutputVerbose() string {
return `Fastly API token provided via --token
Fastly API endpoint: https://api.fastly.com


ID: 123
Name: Foo
User ID: 456
Expand All @@ -413,7 +414,9 @@ IP: 127.0.0.2

Created at: 2021-06-15 23:00:00 +0000 UTC
Last used at: 2021-06-15 23:00:00 +0000 UTC
Expires at: 2021-06-15 23:00:00 +0000 UTC`
Expires at: 2021-06-15 23:00:00 +0000 UTC

`
}

func listTokenOutputSummary(env bool) string {
Expand Down
1 change: 1 addition & 0 deletions pkg/commands/backend/backend_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,7 @@ SERVICE VERSION NAME ADDRESS PORT COMMENT
var listBackendsVerboseOutput = strings.Join([]string{
"Fastly API token not provided",
"Fastly API endpoint: https://api.fastly.com",
"",
"Service ID (via --service-id): 123",
"",
"Version: 1",
Expand Down
110 changes: 89 additions & 21 deletions pkg/commands/compute/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,50 +70,102 @@ func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {
if c.Globals.Flags.Quiet {
out = io.Discard
}
progress := text.NewProgress(out, c.Globals.Verbose())

spinner, err := text.NewSpinner(out)
if err != nil {
return err
}

defer func(errLog fsterr.LogInterface) {
if err != nil {
errLog.Add(err)
progress.Fail() // progress.Done is handled inline
}
}(c.Globals.ErrLog)

progress.Step("Verifying package manifest...")
err = spinner.Start()
if err != nil {
return err
}
msg := "Verifying package manifest..."
spinner.Message(msg)

err = c.Manifest.File.ReadError()
if err != nil {
if errors.Is(err, os.ErrNotExist) {
err = fsterr.ErrReadingManifest
}
c.Globals.ErrLog.Add(err)

spinner.StopFailMessage(msg)
spinErr := spinner.StopFail()
if spinErr != nil {
return spinErr
}

return err
}

spinner.StopMessage(msg)
err = spinner.Stop()
if err != nil {
return err
}

err = spinner.Start()
if err != nil {
return err
}
msg = "Identifying package name..."
spinner.Message(msg)

packageName, err := packageName(c)
if err != nil {
spinner.StopFailMessage(msg)
spinErr := spinner.StopFail()
if spinErr != nil {
return spinErr
}
return err
}

spinner.StopMessage(msg)
err = spinner.Stop()
if err != nil {
return err
}

err = spinner.Start()
if err != nil {
return err
}
msg = "Identifying toolchain..."
spinner.Message(msg)

toolchain, err := toolchain(c)
if err != nil {
spinner.StopFailMessage(msg)
spinErr := spinner.StopFail()
if spinErr != nil {
return spinErr
}
return err
}

language, err := language(toolchain, c, progress)
spinner.StopMessage(msg)
err = spinner.Stop()
if err != nil {
return err
}

err = binDir(c)
language, err := language(toolchain, c, out)
if err != nil {
return err
}

// NOTE: We set the progress indicator to Done() so that any output we now
// print doesn't get hidden by the progress status.
progress.Done()
progress = text.ResetProgress(out, c.Globals.Verbose())
err = binDir(c)
if err != nil {
return err
}

postBuildCallback := func() error {
if !c.Globals.Flags.AutoYes && !c.Globals.Flags.NonInteractive {
Expand All @@ -125,19 +177,19 @@ func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {
return nil
}

if err := language.Build(out, progress, c.Globals.Flags.Verbose, postBuildCallback); err != nil {
if err := language.Build(out, spinner, c.Globals.Flags.Verbose, postBuildCallback); err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]any{
"Language": language.Name,
})
return err
}

if c.Globals.Verbose() {
text.Break(out)
err = spinner.Start()
if err != nil {
return err
}

progress = text.ResetProgress(out, c.Globals.Verbose())
progress.Step("Creating package archive...")
msg = "Creating package archive..."
spinner.Message(msg)

dest := filepath.Join("pkg", fmt.Sprintf("%s.tar.gz", packageName))

Expand All @@ -149,6 +201,11 @@ func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {

files, err = c.includeSourceCode(files, language.SourceDirectory)
if err != nil {
spinner.StopFailMessage(msg)
spinErr := spinner.StopFail()
if spinErr != nil {
return spinErr
}
return err
}

Expand All @@ -158,10 +215,21 @@ func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {
"Files": files,
"Destination": dest,
})

spinner.StopFailMessage(msg)
spinErr := spinner.StopFail()
if spinErr != nil {
return spinErr
}

return fmt.Errorf("error creating package archive: %w", err)
}

progress.Done()
spinner.StopMessage(msg)
err = spinner.Stop()
if err != nil {
return err
}

out = originalOut
text.Success(out, "Built package (%s)", dest)
Expand Down Expand Up @@ -250,7 +318,7 @@ func toolchain(c *BuildCommand) (string, error) {
}

// language returns a pointer to a supported language.
func language(toolchain string, c *BuildCommand, progress text.Progress) (*Language, error) {
func language(toolchain string, c *BuildCommand, out io.Writer) (*Language, error) {
var language *Language
switch toolchain {
case "assemblyscript":
Expand All @@ -261,7 +329,7 @@ func language(toolchain string, c *BuildCommand, progress text.Progress) (*Langu
&c.Manifest.File,
c.Globals.ErrLog,
c.Flags.Timeout,
progress,
out,
c.Globals.Verbose(),
),
})
Expand All @@ -274,7 +342,7 @@ func language(toolchain string, c *BuildCommand, progress text.Progress) (*Langu
c.Globals.ErrLog,
c.Flags.Timeout,
c.Globals.Config.Language.Go,
progress,
out,
c.Globals.Verbose(),
),
})
Expand All @@ -286,7 +354,7 @@ func language(toolchain string, c *BuildCommand, progress text.Progress) (*Langu
&c.Manifest.File,
c.Globals.ErrLog,
c.Flags.Timeout,
progress,
out,
c.Globals.Verbose(),
),
})
Expand All @@ -299,7 +367,7 @@ func language(toolchain string, c *BuildCommand, progress text.Progress) (*Langu
c.Globals.ErrLog,
c.Flags.Timeout,
c.Globals.Config.Language.Rust,
progress,
out,
c.Globals.Verbose(),
),
})
Expand Down
3 changes: 2 additions & 1 deletion pkg/commands/compute/build_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/fastly/cli/pkg/config"
"github.com/fastly/cli/pkg/manifest"
"github.com/fastly/cli/pkg/testutil"
"github.com/fastly/cli/pkg/threadsafe"
)

func TestBuildRust(t *testing.T) {
Expand Down Expand Up @@ -788,7 +789,7 @@ func TestBuildOther(t *testing.T) {
}
}

var stdout bytes.Buffer
var stdout threadsafe.Buffer
opts := testutil.NewRunOpts(testcase.args, &stdout)
opts.Stdin = strings.NewReader(testcase.stdin) // NOTE: build only has one prompt when dealing with a custom build
err = app.Run(opts)
Expand Down
Loading