From 962d38e9ddfa4a285fca8ae36f2116acc637dd40 Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Fri, 27 Jan 2023 11:38:36 +0100 Subject: [PATCH] Add nvidia-ctk system subcommand Signed-off-by: Evan Lezar --- cmd/nvidia-ctk/main.go | 2 ++ cmd/nvidia-ctk/system/system.go | 49 +++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 cmd/nvidia-ctk/system/system.go diff --git a/cmd/nvidia-ctk/main.go b/cmd/nvidia-ctk/main.go index a8b04b64..df3617e2 100644 --- a/cmd/nvidia-ctk/main.go +++ b/cmd/nvidia-ctk/main.go @@ -23,6 +23,7 @@ import ( "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/hook" infoCLI "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/info" "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/runtime" + "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/system" "github.com/NVIDIA/nvidia-container-toolkit/internal/info" log "github.com/sirupsen/logrus" @@ -77,6 +78,7 @@ func main() { runtime.NewCommand(logger), infoCLI.NewCommand(logger), cdi.NewCommand(logger), + system.NewCommand(logger), } // Run the CLI diff --git a/cmd/nvidia-ctk/system/system.go b/cmd/nvidia-ctk/system/system.go new file mode 100644 index 00000000..721a2940 --- /dev/null +++ b/cmd/nvidia-ctk/system/system.go @@ -0,0 +1,49 @@ +/** +# Copyright (c) NVIDIA CORPORATION. All rights reserved. +# +# 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. +**/ + +package system + +import ( + "github.com/NVIDIA/nvidia-container-toolkit/cmd/nvidia-ctk/runtime/configure" + "github.com/sirupsen/logrus" + "github.com/urfave/cli/v2" +) + +type command struct { + logger *logrus.Logger +} + +// NewCommand constructs a runtime command with the specified logger +func NewCommand(logger *logrus.Logger) *cli.Command { + c := command{ + logger: logger, + } + return c.build() +} + +func (m command) build() *cli.Command { + // Create the 'system' command + system := cli.Command{ + Name: "system", + Usage: "A collection of system-related utilities for the NVIDIA Container Toolkit", + } + + system.Subcommands = []*cli.Command{ + configure.NewCommand(m.logger), + } + + return &system +}