copy: no check sigs for chroot store
This commit is contained in:
parent
87382aebed
commit
2f5e75ae25
4
copy.go
4
copy.go
@ -19,6 +19,10 @@ func Copy(ctx Context, store Store, installables iter.Seq[string]) error {
|
|||||||
FlagTo, store.String(),
|
FlagTo, store.String(),
|
||||||
FlagStdin)
|
FlagStdin)
|
||||||
cmd.Env = append(os.Environ(), store.Environ()...)
|
cmd.Env = append(os.Environ(), store.Environ()...)
|
||||||
|
if _, ok := store.(Local); ok {
|
||||||
|
// this is required for chroot stores, but does not seem to have any effect on binary cache
|
||||||
|
cmd.Args = append(cmd.Args, FlagNoCheckSigs)
|
||||||
|
}
|
||||||
|
|
||||||
cmd.Stdout, cmd.Stderr = ctx.Streams()
|
cmd.Stdout, cmd.Stderr = ctx.Streams()
|
||||||
_, err := ctx.WriteStdin(cmd, installables, nil)
|
_, err := ctx.WriteStdin(cmd, installables, nil)
|
||||||
|
22
copy_test.go
22
copy_test.go
@ -14,10 +14,15 @@ import (
|
|||||||
func init() {
|
func init() {
|
||||||
stubCommandInit = append(stubCommandInit, func(c command.Command) {
|
stubCommandInit = append(stubCommandInit, func(c command.Command) {
|
||||||
var (
|
var (
|
||||||
flagCopyTo string
|
flagCopyTo string
|
||||||
flagCopyStdin bool
|
flagCopyStdin bool
|
||||||
|
flagNoCheckSigs bool
|
||||||
)
|
)
|
||||||
c.NewCommand(nix.CommandCopy, "emit samples for various `nix copy` cases", func(args []string) error {
|
c.NewCommand(nix.CommandCopy, "emit samples for various `nix copy` cases", func(args []string) error {
|
||||||
|
if flagNoCheckSigs && flagCopyStdin && flagCopyTo == "/" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if flagCopyTo != "s3://example?compression=none¶llel-compression=false®ion=us-east-1&scheme=http&endpoint=s3.example.org&secret-key="+nonexistent || !flagCopyStdin {
|
if flagCopyTo != "s3://example?compression=none¶llel-compression=false®ion=us-east-1&scheme=http&endpoint=s3.example.org&secret-key="+nonexistent || !flagCopyStdin {
|
||||||
return syscall.ENOSYS
|
return syscall.ENOSYS
|
||||||
}
|
}
|
||||||
@ -32,7 +37,8 @@ func init() {
|
|||||||
return nil
|
return nil
|
||||||
}).
|
}).
|
||||||
Flag(&flagCopyTo, trimFlagName(nix.FlagTo), command.StringFlag(""), nix.FlagTo).
|
Flag(&flagCopyTo, trimFlagName(nix.FlagTo), command.StringFlag(""), nix.FlagTo).
|
||||||
Flag(&flagCopyStdin, trimFlagName(nix.FlagStdin), command.BoolFlag(false), nix.FlagStdin)
|
Flag(&flagCopyStdin, trimFlagName(nix.FlagStdin), command.BoolFlag(false), nix.FlagStdin).
|
||||||
|
Flag(&flagNoCheckSigs, trimFlagName(nix.FlagNoCheckSigs), command.BoolFlag(false), nix.FlagNoCheckSigs)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,4 +70,14 @@ func TestCopy(t *testing.T) {
|
|||||||
t.Errorf("Copy: error = %v, want %v", err, os.ErrInvalid)
|
t.Errorf("Copy: error = %v, want %v", err, os.ErrInvalid)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("chroot store", func(t *testing.T) {
|
||||||
|
if err := nix.Copy(
|
||||||
|
newStubContext(t.Context(), nil, os.Stdout, os.Stderr),
|
||||||
|
nix.Local(os.PathSeparator),
|
||||||
|
slices.Values([]string{"/nix/store"}),
|
||||||
|
); err != nil {
|
||||||
|
t.Errorf("Copy: error = %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user