tools(hgctl): add windows build (#739)

Signed-off-by: Ink33 <Ink33@smlk.org>
This commit is contained in:
Ink33
2023-12-28 21:00:35 +08:00
committed by GitHub
parent 0ae376b320
commit 659a982496
6 changed files with 112 additions and 27 deletions

View File

@@ -20,10 +20,8 @@ import (
"fmt"
"io"
"os"
"os/signal"
"os/user"
"strings"
"syscall"
"github.com/alibaba/higress/pkg/cmd/hgctl/plugin/option"
ptypes "github.com/alibaba/higress/pkg/cmd/hgctl/plugin/types"
@@ -633,11 +631,7 @@ func (b *Builder) config(f ConfigFunc) (err error) {
b.w = os.Stdout
}
b.sig = make(chan os.Signal, 1)
b.stop = make(chan struct{}, 1)
b.done = make(chan struct{}, 1)
signal.Notify(b.sig, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM,
syscall.SIGUSR1, syscall.SIGUSR2, syscall.SIGQUIT, syscall.SIGTSTP)
signalNotify(b)
if b.Debugger == nil {
b.Debugger = utils.NewDefaultDebugger(b.Debug, b.w)

View File

@@ -0,0 +1,31 @@
// Copyright (c) 2022 Alibaba Group Holding Ltd.
//
// 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
//
// http://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.
//go:build linux || darwin || bsd
package build
import (
"os"
"os/signal"
"syscall"
)
func signalNotify(b *Builder) {
b.sig = make(chan os.Signal, 1)
b.stop = make(chan struct{}, 1)
b.done = make(chan struct{}, 1)
signal.Notify(b.sig, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM,
syscall.SIGUSR1, syscall.SIGUSR2, syscall.SIGQUIT, syscall.SIGTSTP)
}

View File

@@ -0,0 +1,31 @@
// Copyright (c) 2022 Alibaba Group Holding Ltd.
//
// 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
//
// http://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.
//go:build windows
package build
import (
"os"
"os/signal"
"syscall"
)
func signalNotify(b *Builder) {
b.sig = make(chan os.Signal, 1)
b.stop = make(chan struct{}, 1)
b.done = make(chan struct{}, 1)
signal.Notify(b.sig, syscall.SIGHUP, syscall.SIGINT,
syscall.SIGTERM, syscall.SIGQUIT)
}