ソースを参照

add size for file

Lunny Xiao 11 年 前
コミット
6bdd6f9b18
3 ファイル変更8 行追加64 行削除
  1. 0 63
      models/repo.go
  2. 7 0
      models/repo2.go
  3. 1 1
      templates/repo/single.tmpl

+ 0 - 63
models/repo.go

@@ -261,69 +261,6 @@ func GetRepositoryCount(user *User) (int64, error) {
 	return orm.Count(&Repository{OwnerId: user.Id})
 }
 
-/*
-type RepoFile struct {
-	Id      *git.Oid
-	Type    int
-	Name    string
-	Path    string
-	Message string
-	Created time.Time
-}
-
-func (f *RepoFile) IsFile() bool {
-	return f.Type == git.FilemodeBlob || f.Type == git.FilemodeBlobExecutable
-}
-
-func (f *RepoFile) IsDir() bool {
-	return f.Type == git.FilemodeTree
-}*/
-
-/*
-func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile, error) {
-	f := RepoPath(userName, reposName)
-
-	repo, err := git.OpenRepository(f)
-	if err != nil {
-		return nil, err
-	}
-
-	repo.LookupReference("refs/heads/" + branchName)
-
-	obj, err := repo.RevparseSingle("HEAD")
-	if err != nil {
-		return nil, err
-	}
-	lastCommit := obj.(*git.Commit)
-	var repofiles []*RepoFile
-	tree, err := lastCommit.Tree()
-	if err != nil {
-		return nil, err
-	}
-	//var i uint64 = 0
-	if rpath != "" {
-		rpath = rpath + "/"
-	}
-	//fmt.Println("...", rpath, "...")
-
-	tree.Walk(func(dirname string, entry *git.TreeEntry) int {
-		if dirname == rpath {
-			//fmt.Println("====", dirname, "==", entry.Name)
-			repofiles = append(repofiles, &RepoFile{
-				entry.Id,
-				entry.Filemode,
-				entry.Name,
-				path.Join(dirname, entry.Name),
-				lastCommit.Message(),
-				lastCommit.Committer().When,
-			})
-		}
-		return 0
-	})
-
-	return repofiles, nil
-}*/
-
 func StarReposiory(user *User, repoName string) error {
 	return nil
 }

+ 7 - 0
models/repo2.go

@@ -16,6 +16,7 @@ type RepoFile struct {
 	Path    string
 	Message string
 	Created time.Time
+	Size    int64
 }
 
 func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile, error) {
@@ -40,6 +41,10 @@ func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile,
 	var repofiles []*RepoFile
 	lastCommit.Tree.Walk(func(dirname string, entry *git.TreeEntry) int {
 		if dirname == rpath {
+			size, err := repo.ObjectSize(entry.Id)
+			if err != nil {
+				return 0
+			}
 			switch entry.Filemode {
 			case git.FileModeBlob, git.FileModeBlobExec:
 				repofiles = append(repofiles, &RepoFile{
@@ -47,6 +52,7 @@ func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile,
 					path.Join(dirname, entry.Name),
 					lastCommit.Message(),
 					lastCommit.Committer.When,
+					size,
 				})
 			case git.FileModeTree:
 				repodirs = append(repodirs, &RepoFile{
@@ -54,6 +60,7 @@ func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile,
 					path.Join(dirname, entry.Name),
 					lastCommit.Message(),
 					lastCommit.Committer.When,
+					size,
 				})
 			}
 		}

+ 1 - 1
templates/repo/single.tmpl

@@ -47,7 +47,7 @@
                     {{if .IsDir}}
                     <a href="/{{$username}}/{{$reponame}}/tree/{{$branchname}}/{{.Path}}">{{.Name}}</a>
                     {{else}}
-                    <a href="#">{{.Name}}</a>
+                    <a href="#">{{.Name}} - {{.Size}}</a>
                     {{end}}</td>
 	                <td class="date"><time datetime="{{.Created}}" data-title="true" title="{{.Created}}">{{TimeSince .Created}}</time></td>
 	                <td class="text">{{.Message}}</td>