github.com/rigado/snapd@v2.42.5-go-mod+incompatible/advisor/finder.go (about) 1 // -*- Mode: Go; indent-tabs-mode: t -*- 2 3 /* 4 * Copyright (C) 2018 Canonical Ltd 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 3 as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 package advisor 21 22 var newFinder = Open 23 24 type Finder interface { 25 FindCommand(command string) ([]Command, error) 26 FindPackage(pkgName string) (*Package, error) 27 Close() error 28 } 29 30 func ReplaceCommandsFinder(constructor func() (Finder, error)) (restore func()) { 31 old := newFinder 32 newFinder = constructor 33 return func() { 34 newFinder = old 35 } 36 }