/
errors.go
57 lines (46 loc) · 1.35 KB
/
errors.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Copyright 2021 Google LLC
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// https://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cmd
import (
"errors"
)
var (
errSigInt = &exitError{
Err: errors.New("SIGINT signal received"),
Code: 130,
}
errSigTerm = &exitError{
Err: errors.New("SIGTERM signal received"),
Code: 143,
}
errQuitQuitQuit = &exitError{
Err: errors.New("/quitquitquit received request"),
Code: 0, // This error guarantees a clean exit.
}
)
func newBadCommandError(msg string) error {
return &exitError{
Err: errors.New(msg),
Code: 1,
}
}
// exitError is an error with an exit code, that's returned when the cmd exits.
// When possible, try to match these conventions: https://tldp.org/LDP/abs/html/exitcodes.html
type exitError struct {
Code int
Err error
}
func (e *exitError) Error() string {
if e.Err == nil {
return "<missing error>"
}
return e.Err.Error()
}