diff mercurial/hgweb.py @ 359:0c4688e9ee5c

hgweb: add file permissions -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 hgweb: add file permissions From: Goffredo Baroncelli <kreijack@libero.it> Show permissions in hgweb Tweaked by mpm manifest hash: f11361c6da21f3ba60c5e6a173396754c36efb1d -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCsHFqywK+sNU5EO8RAoqFAJ44P8kZoZDiY5Fw8LWpL/3ArXNE2QCeO3z4 0zV5rXWa/r/xgf+AVTLeQ/4= =FzLj -----END PGP SIGNATURE-----
author mpm@selenic.com
date Wed, 15 Jun 2005 10:20:26 -0800
parents 9525208e1c1d
children 21306bd3e0f5
line wrap: on
line diff
--- a/mercurial/hgweb.py	Wed Jun 15 10:06:40 2005 -0800
+++ b/mercurial/hgweb.py	Wed Jun 15 10:20:26 2005 -0800
@@ -130,6 +130,7 @@
             "addbreaks": nl2br,
             "obfuscate": obfuscate,
             "firstline": (lambda x: x.splitlines(1)[0]),
+            "permissions": (lambda x: x and "-rwxr-xr-x" or "-rw-r--r--")
             }
 
     def refresh(self):
@@ -376,13 +377,14 @@
         p1, p2 = fl.parents(n)
         t = float(cs[2].split(' ')[0])
         mfn = cs[0]
+        self.repo.manifest.read(mfn)
 
         def lines():
             for l, t in enumerate(text.splitlines(1)):
                 yield self.t("fileline", line = t,
                              linenumber = "% 6d" % (l + 1),
                              parity = l & 1)
-        
+
         yield self.t("filerevision", file = f,
                      header = self.header(),
                      footer = self.footer(),
@@ -400,6 +402,7 @@
                      parent2 = self.parent("filerevparent",
                                            hex(p2), fl.rev(p2), file=f),
                      p1 = hex(p1), p2 = hex(p2),
+                     permissions = self.repo.manifest.readflags(mfn)[f],
                      p1rev = fl.rev(p1), p2rev = fl.rev(p2))
 
     def fileannotate(self, f, node):
@@ -415,6 +418,7 @@
         p1, p2 = fl.parents(n)
         t = float(cs[2].split(' ')[0])
         mfn = cs[0]
+        self.repo.manifest.read(mfn)
 
         def annotate():
             parity = 1
@@ -465,12 +469,14 @@
                      parent2 = self.parent("fileannotateparent",
                                            hex(p2), fl.rev(p2), file=f),
                      p1 = hex(p1), p2 = hex(p2),
+                     permissions = self.repo.manifest.readflags(mfn)[f],
                      p1rev = fl.rev(p1), p2rev = fl.rev(p2))
 
     def manifest(self, mnode, path):
         mf = self.repo.manifest.read(bin(mnode))
         rev = self.repo.manifest.rev(bin(mnode))
         node = self.repo.changelog.node(rev)
+        mff=self.repo.manifest.readflags(bin(mnode))
 
         files = {}
  
@@ -500,7 +506,8 @@
                                  manifest = mnode,
                                  filenode = hex(fnode),
                                  parity = parity,
-                                 basename = f)
+                                 basename = f, 
+                                 permissions = mff[full])
                 else:
                     yield self.t("manifestdirentry",
                                  parity = parity,