This doesn't really take much advantage of structured logging beyond what is already done (`id` and `idColor`), and consequently the log handler does not try to do any handling of anything more than that (i.e., grouping, or arbitrary attributes beyond those defined).
One should maybe have a `Context` available to pass in, but there isn't one, and anyway, the log handler doesn't use it, so I've passed in a `TODO` instead.
Everything else is just normal import/rename changes.
Testing Done:
Ran `go run . run`
Reviewed at https://reviews.imfreedom.org/r/2871/
// Convey
// Copyright 2016-2021 Gary Kramlich <grim@reaperworld.com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
packagerunner
import(
"context"
"fmt"
"log/slog"
"os"
"os/signal"
"path/filepath"
"syscall"
"time"
"keep.imfreedom.org/grim/convey/config"
"keep.imfreedom.org/grim/convey/globals"
"keep.imfreedom.org/grim/convey/logging"
"keep.imfreedom.org/grim/convey/runtime"
)
typeRunnerCmdstruct{
ConfigFilestring`kong:"flag,help='The config file to load',placeholder='FILE',short='f',default='convey.yml',name='config'"`
CPUSharesstring`kong:"flag,help='The amount of cpu shares given to run tasks',placeholder='CPU-SHARES',short='c'"`
ForceSequentialbool`kong:"flag,help='Force concurrent stages to be ran sequentially',short='S',default='false'"`
KeepWorkspacebool`kong:"flag,help='Keep the workspace directory after running',default='false'"`
Memorystring`kong:"flag,help='The amount of memory shares given to run tasks',placeholder='MEMORY',short='m'"`
Timeouttime.Duration`kong:"flag,help='The maximum amount of time a plan can run. 0 to disable. Units must be specified.',placeholder='DURATION',default='15m'"`
Environment[]string`kong:"flag,name='env',help='Set an environment variable',short='e',placeholder='ENV'"`
Plans[]string`kong:"arg,help='The names of the plans to run',default='default'"`