github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/cmds/contrib/flash/dummy.go (about) 1 // Copyright 2021 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main 6 7 import ( 8 "fmt" 9 10 "github.com/mvdan/u-root-coreutils/pkg/flash" 11 "github.com/mvdan/u-root-coreutils/pkg/flash/spimock" 12 ) 13 14 type dummyProgrammer struct { 15 *flash.Flash 16 spi *spimock.MockSPI 17 } 18 19 func (p *dummyProgrammer) Close() error { 20 return p.spi.Close() 21 } 22 23 func init() { 24 supportedProgrammers["dummy"] = func(params programmerParams) (programmer, error) { 25 spi := spimock.New() 26 if image, ok := params["image"]; ok { 27 var err error 28 spi, err = spimock.NewFromFile(image) 29 if err != nil { 30 return nil, err 31 } 32 delete(params, "image") 33 } 34 if len(params) != 0 { 35 return nil, fmt.Errorf("unrecognized parameters: %v", params) 36 } 37 flash, err := flash.New(spi) 38 if err != nil { 39 return nil, err 40 } 41 return &dummyProgrammer{ 42 Flash: flash, 43 spi: spi, 44 }, nil 45 } 46 }