@@ -77,6 +77,12 @@ const (
77
77
_partVcsGitIdxTotal = "vcs_git_idx_total"
78
78
_partVcsGitIdxIncluded = "vcs_git_idx_incl"
79
79
_partVcsGitIdxExcluded = "vcs_git_idx_excl"
80
+
81
+ _partVcsSaplRev = "vcs_sapling_rev"
82
+ _partVcsSaplNode = "vcs_sapling_node"
83
+ _partVcsSaplBookmarks = "vcs_sapling_bookmarks"
84
+ _partVcsSaplBookmarkActive = "vcs_sapling_bookmarks_active"
85
+ _partVcsSaplBookmarksRemote = "vcs_sapling_bookmarks_remote"
80
86
)
81
87
82
88
func handleQUIT () context.CancelFunc {
@@ -214,6 +220,51 @@ func cmdQueryRun(_ *cobra.Command, _ []string) error {
214
220
return nil
215
221
})
216
222
223
+ tasks .Go (func (context.Context ) error {
224
+ subTasks := mkWgPool ()
225
+ defer subTasks .Wait ()
226
+
227
+ saplingTemplate := `{rev}\t{node}\t{join(remotenames, "#")}\t{join(bookmarks, "#")}\t{activebookmark}\t{ifcontains(rev, revset("."), "@")}\n`
228
+
229
+ if _ , err := stringExec ("sl" , "root" ); err == nil {
230
+ printPart (_partVcs , "sapling" )
231
+ } else {
232
+ return nil
233
+ }
234
+
235
+ subTasks .Go (func (ctx context.Context ) error {
236
+ if revInfo , err := stringExec ("sl" , "log" , "-r" , "." , "--template" , saplingTemplate ); err == nil {
237
+ info := strings .Split (revInfo , "\t " )
238
+ printPart (_partVcsSaplRev , info [0 ])
239
+ printPart (_partVcsSaplNode , info [1 ])
240
+ printPart (_partVcsSaplBookmarks , info [3 ])
241
+ if info [4 ] == "" {
242
+ printPart (_partVcsSaplBookmarkActive , "@" )
243
+ } else {
244
+ printPart (_partVcsSaplBookmarkActive , info [4 ])
245
+ }
246
+ printPart (_partVcsSaplBookmarksRemote , info [2 ])
247
+ }
248
+
249
+ return nil
250
+ })
251
+
252
+
253
+ subTasks .Go (func (ctx context.Context ) error {
254
+ if saplStatus , err := stringExec ("sl" , "status" ); err == nil {
255
+ if len (saplStatus ) == 0 {
256
+ printPart (_partVcsDirty , 0 )
257
+ return nil
258
+ }
259
+
260
+ printPart (_partVcsDirty , 1 )
261
+ }
262
+ return nil
263
+ })
264
+
265
+ return nil
266
+ })
267
+
217
268
tasks .Go (func (context.Context ) error {
218
269
subTasks := mkWgPool ()
219
270
defer subTasks .Wait ()
0 commit comments