@@ -10,11 +10,12 @@ import (
10
10
"os/exec"
11
11
"path"
12
12
"path/filepath"
13
- "strconv"
14
13
"strings"
15
14
16
15
"github.com/codegangsta/cli"
17
16
17
+ "github.com/Unknwon/com"
18
+
18
19
"github.com/gogits/gogs/models"
19
20
"github.com/gogits/gogs/modules/log"
20
21
"github.com/gogits/gogs/modules/setting"
@@ -81,22 +82,22 @@ func runServ(k *cli.Context) {
81
82
keys := strings .Split (os .Args [2 ], "-" )
82
83
if len (keys ) != 2 {
83
84
println ("Gogs: auth file format error" )
84
- log .GitLogger .Fatal ("Invalid auth file format: %s" , os .Args [2 ])
85
+ log .GitLogger .Fatal (2 , "Invalid auth file format: %s" , os .Args [2 ])
85
86
}
86
87
87
- keyId , err := strconv . ParseInt (keys [1 ], 10 , 64 )
88
+ keyId , err := com . StrTo (keys [1 ]). Int64 ( )
88
89
if err != nil {
89
90
println ("Gogs: auth file format error" )
90
- log .GitLogger .Fatal ("Invalid auth file format: %v" , err )
91
+ log .GitLogger .Fatal (2 , "Invalid auth file format: %v" , err )
91
92
}
92
93
user , err := models .GetUserByKeyId (keyId )
93
94
if err != nil {
94
95
if err == models .ErrUserNotKeyOwner {
95
96
println ("Gogs: you are not the owner of SSH key" )
96
- log .GitLogger .Fatal ("Invalid owner of SSH key: %d" , keyId )
97
+ log .GitLogger .Fatal (2 , "Invalid owner of SSH key: %d" , keyId )
97
98
}
98
99
println ("Gogs: internal error:" , err )
99
- log .GitLogger .Fatal ("Fail to get user by key ID(%d): %v" , keyId , err )
100
+ log .GitLogger .Fatal (2 , "Fail to get user by key ID(%d): %v" , keyId , err )
100
101
}
101
102
102
103
cmd := os .Getenv ("SSH_ORIGINAL_COMMAND" )
@@ -110,7 +111,7 @@ func runServ(k *cli.Context) {
110
111
rr := strings .SplitN (repoPath , "/" , 2 )
111
112
if len (rr ) != 2 {
112
113
println ("Gogs: unavailable repository" , args )
113
- log .GitLogger .Fatal ("Unavailable repository: %v" , args )
114
+ log .GitLogger .Fatal (2 , "Unavailable repository: %v" , args )
114
115
}
115
116
repoUserName := rr [0 ]
116
117
repoName := strings .TrimSuffix (rr [1 ], ".git" )
@@ -122,10 +123,10 @@ func runServ(k *cli.Context) {
122
123
if err != nil {
123
124
if err == models .ErrUserNotExist {
124
125
println ("Gogs: given repository owner are not registered" )
125
- log .GitLogger .Fatal ("Unregistered owner: %s" , repoUserName )
126
+ log .GitLogger .Fatal (2 , "Unregistered owner: %s" , repoUserName )
126
127
}
127
128
println ("Gogs: internal error:" , err )
128
- log .GitLogger .Fatal ("Fail to get repository owner(%s): %v" , repoUserName , err )
129
+ log .GitLogger .Fatal (2 , "Fail to get repository owner(%s): %v" , repoUserName , err )
129
130
}
130
131
131
132
// Access check.
@@ -134,20 +135,20 @@ func runServ(k *cli.Context) {
134
135
has , err := models .HasAccess (user .Name , path .Join (repoUserName , repoName ), models .WRITABLE )
135
136
if err != nil {
136
137
println ("Gogs: internal error:" , err )
137
- log .GitLogger .Fatal ("Fail to check write access:" , err )
138
+ log .GitLogger .Fatal (2 , "Fail to check write access:" , err )
138
139
} else if ! has {
139
140
println ("You have no right to write this repository" )
140
- log .GitLogger .Fatal ("User %s has no right to write repository %s" , user .Name , repoPath )
141
+ log .GitLogger .Fatal (2 , "User %s has no right to write repository %s" , user .Name , repoPath )
141
142
}
142
143
case isRead :
143
144
repo , err := models .GetRepositoryByName (repoUser .Id , repoName )
144
145
if err != nil {
145
146
if err == models .ErrRepoNotExist {
146
147
println ("Gogs: given repository does not exist" )
147
- log .GitLogger .Fatal ("Repository does not exist: %s/%s" , repoUser .Name , repoName )
148
+ log .GitLogger .Fatal (2 , "Repository does not exist: %s/%s" , repoUser .Name , repoName )
148
149
}
149
150
println ("Gogs: internal error:" , err )
150
- log .GitLogger .Fatal ("Fail to get repository: %v" , err )
151
+ log .GitLogger .Fatal (2 , "Fail to get repository: %v" , err )
151
152
}
152
153
153
154
if ! repo .IsPrivate {
@@ -157,10 +158,10 @@ func runServ(k *cli.Context) {
157
158
has , err := models .HasAccess (user .Name , path .Join (repoUserName , repoName ), models .READABLE )
158
159
if err != nil {
159
160
println ("Gogs: internal error:" , err )
160
- log .GitLogger .Fatal ("Fail to check read access:" , err )
161
+ log .GitLogger .Fatal (2 , "Fail to check read access:" , err )
161
162
} else if ! has {
162
163
println ("You have no right to access this repository" )
163
- log .GitLogger .Fatal ("User %s has no right to read repository %s" , user .Name , repoPath )
164
+ log .GitLogger .Fatal (2 , "User %s has no right to read repository %s" , user .Name , repoPath )
164
165
}
165
166
default :
166
167
println ("Unknown command" )
@@ -175,29 +176,27 @@ func runServ(k *cli.Context) {
175
176
gitcmd .Stdout = os .Stdout
176
177
gitcmd .Stdin = os .Stdin
177
178
gitcmd .Stderr = os .Stderr
178
- err = gitcmd .Run ()
179
- if err != nil {
180
- println ("Gogs: internal error:" , err )
181
- log .GitLogger .Fatal ("Fail to execute git command: %v" , err )
179
+ if err = gitcmd .Run (); err != nil {
180
+ println ("Gogs: internal error:" , err .Error ())
181
+ log .GitLogger .Fatal (2 , "Fail to execute git command: %v" , err )
182
182
}
183
183
184
184
if isWrite {
185
185
tasks , err := models .GetUpdateTasksByUuid (uuid )
186
186
if err != nil {
187
- log .GitLogger .Fatal ("Fail to get update task: %v" , err )
187
+ log .GitLogger .Fatal (2 , "Fail to get update task: %v" , err )
188
188
}
189
189
190
190
for _ , task := range tasks {
191
191
err = models .Update (task .RefName , task .OldCommitId , task .NewCommitId ,
192
192
user .Name , repoUserName , repoName , user .Id )
193
193
if err != nil {
194
- log .GitLogger .Fatal ("Fail to update: %v" , err )
194
+ log .GitLogger .Fatal (2 , "Fail to update: %v" , err )
195
195
}
196
196
}
197
197
198
- err = models .DelUpdateTasksByUuid (uuid )
199
- if err != nil {
200
- log .GitLogger .Fatal ("Fail to del update task: %v" , err )
198
+ if err = models .DelUpdateTasksByUuid (uuid ); err != nil {
199
+ log .GitLogger .Fatal (2 , "Fail to del update task: %v" , err )
201
200
}
202
201
}
203
202
}
0 commit comments