|  |  | @ -32,18 +32,18 @@ func (c *commandFsDu) Help() string { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func (c *commandFsDu) Do(args []string, commandEnv *CommandEnv, writer io.Writer) (err error) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	filerServer, filerPort, path, err := commandEnv.parseUrl(findInputDirectory(args)) | 
			
		
	
		
			
				
					|  |  |  | 	path, err := commandEnv.parseUrl(findInputDirectory(args)) | 
			
		
	
		
			
				
					|  |  |  | 	if err != nil { | 
			
		
	
		
			
				
					|  |  |  | 		return err | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	if commandEnv.isDirectory(filerServer, filerPort, path) { | 
			
		
	
		
			
				
					|  |  |  | 	if commandEnv.isDirectory(path) { | 
			
		
	
		
			
				
					|  |  |  | 		path = path + "/" | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	var blockCount, byteCount uint64 | 
			
		
	
		
			
				
					|  |  |  | 	dir, name := util.FullPath(path).DirAndName() | 
			
		
	
		
			
				
					|  |  |  | 	blockCount, byteCount, err = duTraverseDirectory(writer, commandEnv.getFilerClient(filerServer, filerPort), dir, name) | 
			
		
	
		
			
				
					|  |  |  | 	blockCount, byteCount, err = duTraverseDirectory(writer, commandEnv, dir, name) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	if name == "" && err == nil { | 
			
		
	
		
			
				
					|  |  |  | 		fmt.Fprintf(writer, "block:%4d\tbyte:%10d\t%s\n", blockCount, byteCount, dir) | 
			
		
	
	
		
			
				
					|  |  | @ -78,29 +78,13 @@ func duTraverseDirectory(writer io.Writer, filerClient filer_pb.FilerClient, dir | 
			
		
	
		
			
				
					|  |  |  | 	return | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func (env *CommandEnv) withFilerClient(filerServer string, filerPort int64, fn func(filer_pb.SeaweedFilerClient) error) error { | 
			
		
	
		
			
				
					|  |  |  | func (env *CommandEnv) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	filerGrpcAddress := fmt.Sprintf("%s:%d", filerServer, filerPort+10000) | 
			
		
	
		
			
				
					|  |  |  | 	filerGrpcAddress := fmt.Sprintf("%s:%d", env.option.FilerHost, env.option.FilerPort+10000) | 
			
		
	
		
			
				
					|  |  |  | 	return pb.WithGrpcFilerClient(filerGrpcAddress, env.option.GrpcDialOption, fn) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | type commandFilerClient struct { | 
			
		
	
		
			
				
					|  |  |  | 	env         *CommandEnv | 
			
		
	
		
			
				
					|  |  |  | 	filerServer string | 
			
		
	
		
			
				
					|  |  |  | 	filerPort   int64 | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func (env *CommandEnv) getFilerClient(filerServer string, filerPort int64) *commandFilerClient { | 
			
		
	
		
			
				
					|  |  |  | 	return &commandFilerClient{ | 
			
		
	
		
			
				
					|  |  |  | 		env:         env, | 
			
		
	
		
			
				
					|  |  |  | 		filerServer: filerServer, | 
			
		
	
		
			
				
					|  |  |  | 		filerPort:   filerPort, | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | func (c *commandFilerClient) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error { | 
			
		
	
		
			
				
					|  |  |  | 	return c.env.withFilerClient(c.filerServer, c.filerPort, fn) | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | func (c *commandFilerClient) AdjustedUrl(hostAndPort string) string { | 
			
		
	
		
			
				
					|  |  |  | func (env *CommandEnv) AdjustedUrl(hostAndPort string) string { | 
			
		
	
		
			
				
					|  |  |  | 	return hostAndPort | 
			
		
	
		
			
				
					|  |  |  | } |