1package main
2
3import (
4	"path/filepath"
5
6	"github.com/Microsoft/hcsshim"
7	"github.com/Microsoft/hcsshim/internal/appargs"
8	"github.com/urfave/cli"
9)
10
11var createCommand = cli.Command{
12	Name:  "create",
13	Usage: "creates a new writable container layer",
14	Flags: []cli.Flag{
15		cli.StringSliceFlag{
16			Name:  "layer, l",
17			Usage: "paths to the read-only parent layers",
18		},
19	},
20	ArgsUsage: "<layer path>",
21	Before:    appargs.Validate(appargs.NonEmptyString),
22	Action: func(context *cli.Context) error {
23		path, err := filepath.Abs(context.Args().First())
24		if err != nil {
25			return err
26		}
27
28		layers, err := normalizeLayers(context.StringSlice("layer"), true)
29		if err != nil {
30			return err
31		}
32
33		di := driverInfo
34		return hcsshim.CreateScratchLayer(di, path, layers[len(layers)-1], layers)
35	},
36}
37