mirror of https://github.com/v2ray/v2ray-core
				
				
				
			
		
			
				
	
	
		
			32 lines
		
	
	
		
			592 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			592 B
		
	
	
	
		
			Go
		
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"crypto/sha1"
 | |
| 	"encoding/hex"
 | |
| 	"fmt"
 | |
| 	"io"
 | |
| 	"os"
 | |
| 	"path/filepath"
 | |
| )
 | |
| 
 | |
| func CalcMetadata(file string, writer io.Writer) error {
 | |
| 	fileReader, err := os.Open(file)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 	defer fileReader.Close()
 | |
| 
 | |
| 	hasher := sha1.New()
 | |
| 	nBytes, err := io.Copy(hasher, fileReader)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 	sha1sum := hasher.Sum(nil)
 | |
| 	filename := filepath.Base(file)
 | |
| 	fmt.Fprintf(writer, "File: %s\n", filename)
 | |
| 	fmt.Fprintf(writer, "Size: %d\n", nBytes)
 | |
| 	fmt.Fprintf(writer, "SHA1: %s\n", hex.EncodeToString(sha1sum))
 | |
| 	fmt.Fprintln(writer)
 | |
| 	return nil
 | |
| }
 |