Esempio n. 1
0
func runCommand(name string, args []string, dir string, insecure bool) error {
	argv := make([]string, 1, 1+len(args))
	argv[0] = name
	argv = append(argv, args...)

	cmd, ok := commands[name]
	if !ok {
		return fmt.Errorf("%s is not a tuf command. See 'tuf help'", name)
	}

	parsedArgs, err := docopt.Parse(cmd.usage, argv, true, "", true)
	if err != nil {
		return err
	}

	var p utils.PassphraseFunc
	if !insecure {
		p = getPassphrase
	}
	signer := signed.Ed25519{}
	repo, err := tuf.NewRepo(&signer, store.FileSystemStore(dir, p), "sha256")
	if err != nil {
		return err
	}
	return cmd.f(parsedArgs, repo)
}
Esempio n. 2
0
func tufClient(args *docopt.Args) (*client.Client, error) {
	storePath, ok := args.String["--store"]
	if !ok {
		storePath = args.String["-s"]
	}
	local := store.FileSystemStore(storePath, nil)
	remote, err := client.HTTPRemoteStore(args.String["<url>"], nil)
	if err != nil {
		return nil, err
	}
	return client.NewClient(local, remote), nil
}