37 lines
		
	
	
		
			844 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			844 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"net"
 | 
						|
	"path/filepath"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/docker/containerd/content"
 | 
						|
	"github.com/urfave/cli"
 | 
						|
	"google.golang.org/grpc"
 | 
						|
)
 | 
						|
 | 
						|
func resolveContentStore(context *cli.Context) (*content.Store, error) {
 | 
						|
	root := filepath.Join(context.GlobalString("root"), "content")
 | 
						|
	if !filepath.IsAbs(root) {
 | 
						|
		var err error
 | 
						|
		root, err = filepath.Abs(root)
 | 
						|
		if err != nil {
 | 
						|
			return nil, err
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return content.NewStore(root)
 | 
						|
}
 | 
						|
 | 
						|
func connectGRPC(context *cli.Context) (*grpc.ClientConn, error) {
 | 
						|
	socket := context.GlobalString("socket")
 | 
						|
	timeout := context.GlobalDuration("connect-timeout")
 | 
						|
	return grpc.Dial(socket,
 | 
						|
		grpc.WithTimeout(timeout),
 | 
						|
		grpc.WithBlock(),
 | 
						|
		grpc.WithInsecure(),
 | 
						|
		grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {
 | 
						|
			return net.DialTimeout("unix", socket, timeout)
 | 
						|
		}),
 | 
						|
	)
 | 
						|
}
 |