mirror of
https://github.com/containers/podman.git
synced 2025-05-22 09:36:57 +08:00
Fix build on OS X
We disabled the OS X and Windows cross-building tests. This, predictably, led us to regress a bit in our ability to build for both of these. This fixes the build on OS X and fixes one obvious Windows bug. Unfortunately, we're dragging in all of `pkg/spec` somewhere on Windows, and things are blowing up spectacularly because of it (plus a few uses of the `syscall` package in the bindings). I've giving up for the day. This fixes OS X, but does not fully enable the cross-build CI (need Windows fixes for that). Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:
@ -9,20 +9,18 @@ import (
|
|||||||
|
|
||||||
"github.com/containers/libpod/cmd/podman/registry"
|
"github.com/containers/libpod/cmd/podman/registry"
|
||||||
"github.com/containers/libpod/pkg/domain/entities"
|
"github.com/containers/libpod/pkg/domain/entities"
|
||||||
"github.com/containers/psgo"
|
"github.com/containers/libpod/pkg/util"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
topDescription = fmt.Sprintf(`Similar to system "top" command.
|
topDescription = `Similar to system "top" command.
|
||||||
|
|
||||||
Specify format descriptors to alter the output.
|
Specify format descriptors to alter the output.
|
||||||
|
|
||||||
Running "podman top -l pid pcpu seccomp" will print the process ID, the CPU percentage and the seccomp mode of each process of the latest container.
|
Running "podman top -l pid pcpu seccomp" will print the process ID, the CPU percentage and the seccomp mode of each process of the latest container.`
|
||||||
Format Descriptors:
|
|
||||||
%s`, strings.Join(psgo.ListDescriptors(), ","))
|
|
||||||
|
|
||||||
topOptions = entities.TopOptions{}
|
topOptions = entities.TopOptions{}
|
||||||
|
|
||||||
@ -68,6 +66,12 @@ func init() {
|
|||||||
flags := topCommand.Flags()
|
flags := topCommand.Flags()
|
||||||
topFlags(flags)
|
topFlags(flags)
|
||||||
|
|
||||||
|
descriptors, err := util.GetContainerPidInformationDescriptors()
|
||||||
|
if err == nil {
|
||||||
|
topDescription = fmt.Sprintf("%s\n\n Format Descriptors:\n %s", topDescription, strings.Join(descriptors, ","))
|
||||||
|
topCommand.Long = topDescription
|
||||||
|
}
|
||||||
|
|
||||||
registry.Commands = append(registry.Commands, registry.CliCommand{
|
registry.Commands = append(registry.Commands, registry.CliCommand{
|
||||||
Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
|
Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
|
||||||
Command: containerTopCommand,
|
Command: containerTopCommand,
|
||||||
@ -79,7 +83,11 @@ func init() {
|
|||||||
|
|
||||||
func top(cmd *cobra.Command, args []string) error {
|
func top(cmd *cobra.Command, args []string) error {
|
||||||
if topOptions.ListDescriptors {
|
if topOptions.ListDescriptors {
|
||||||
fmt.Println(strings.Join(psgo.ListDescriptors(), "\n"))
|
descriptors, err := util.GetContainerPidInformationDescriptors()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Println(strings.Join(descriptors, "\n"))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,17 +9,15 @@ import (
|
|||||||
|
|
||||||
"github.com/containers/libpod/cmd/podman/registry"
|
"github.com/containers/libpod/cmd/podman/registry"
|
||||||
"github.com/containers/libpod/pkg/domain/entities"
|
"github.com/containers/libpod/pkg/domain/entities"
|
||||||
"github.com/containers/psgo"
|
"github.com/containers/libpod/pkg/util"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
topDescription = fmt.Sprintf(`Specify format descriptors to alter the output.
|
topDescription = `Specify format descriptors to alter the output.
|
||||||
|
|
||||||
You may run "podman pod top -l pid pcpu seccomp" to print the process ID, the CPU percentage and the seccomp mode of each process of the latest pod.
|
You may run "podman pod top -l pid pcpu seccomp" to print the process ID, the CPU percentage and the seccomp mode of each process of the latest pod.`
|
||||||
Format Descriptors:
|
|
||||||
%s`, strings.Join(psgo.ListDescriptors(), ","))
|
|
||||||
|
|
||||||
topOptions = entities.PodTopOptions{}
|
topOptions = entities.PodTopOptions{}
|
||||||
|
|
||||||
@ -43,6 +41,12 @@ func init() {
|
|||||||
Parent: podCmd,
|
Parent: podCmd,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
descriptors, err := util.GetContainerPidInformationDescriptors()
|
||||||
|
if err == nil {
|
||||||
|
topDescription = fmt.Sprintf("%s\n\n Format Descriptors:\n %s", topDescription, strings.Join(descriptors, ","))
|
||||||
|
topCommand.Long = topDescription
|
||||||
|
}
|
||||||
|
|
||||||
flags := topCommand.Flags()
|
flags := topCommand.Flags()
|
||||||
flags.SetInterspersed(false)
|
flags.SetInterspersed(false)
|
||||||
flags.BoolVar(&topOptions.ListDescriptors, "list-descriptors", false, "")
|
flags.BoolVar(&topOptions.ListDescriptors, "list-descriptors", false, "")
|
||||||
@ -56,7 +60,11 @@ func init() {
|
|||||||
|
|
||||||
func top(cmd *cobra.Command, args []string) error {
|
func top(cmd *cobra.Command, args []string) error {
|
||||||
if topOptions.ListDescriptors {
|
if topOptions.ListDescriptors {
|
||||||
fmt.Println(strings.Join(psgo.ListDescriptors(), "\n"))
|
descriptors, err := util.GetContainerPidInformationDescriptors()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Println(strings.Join(descriptors, "\n"))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/syslog"
|
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
@ -17,7 +16,6 @@ import (
|
|||||||
"github.com/opentracing/opentracing-go"
|
"github.com/opentracing/opentracing-go"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
logrusSyslog "github.com/sirupsen/logrus/hooks/syslog"
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
)
|
)
|
||||||
@ -191,21 +189,6 @@ func loggingHook() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func syslogHook() {
|
|
||||||
if !useSyslog {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
hook, err := logrusSyslog.NewSyslogHook("", "", syslog.LOG_INFO, "")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Fprint(os.Stderr, "Failed to initialize syslog hook: "+err.Error())
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
logrus.AddHook(hook)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func rootFlags(opts *entities.PodmanConfig, flags *pflag.FlagSet) {
|
func rootFlags(opts *entities.PodmanConfig, flags *pflag.FlagSet) {
|
||||||
// V2 flags
|
// V2 flags
|
||||||
flags.StringVarP(&opts.Uri, "remote", "r", registry.DefaultAPIAddress(), "URL to access Podman service")
|
flags.StringVarP(&opts.Uri, "remote", "r", registry.DefaultAPIAddress(), "URL to access Podman service")
|
||||||
|
25
cmd/podman/syslog_linux.go
Normal file
25
cmd/podman/syslog_linux.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log/syslog"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
logrusSyslog "github.com/sirupsen/logrus/hooks/syslog"
|
||||||
|
)
|
||||||
|
|
||||||
|
func syslogHook() {
|
||||||
|
if !useSyslog {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
hook, err := logrusSyslog.NewSyslogHook("", "", syslog.LOG_INFO, "")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprint(os.Stderr, "Failed to initialize syslog hook: "+err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
logrus.AddHook(hook)
|
||||||
|
}
|
||||||
|
}
|
17
cmd/podman/syslog_unsupported.go
Normal file
17
cmd/podman/syslog_unsupported.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// +build !linux
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func syslogHook() {
|
||||||
|
if !useSyslog {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Fprintf(os.Stderr, "Logging to Syslog is not supported on Windows")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
Reference in New Issue
Block a user