306 lines
		
	
	
	
		
			10 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			306 lines
		
	
	
	
		
			10 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From d195f807dac2351d29aeff00d2aee3e151eb82e3 Mon Sep 17 00:00:00 2001
 | 
						|
From: Joey Hess <joey@kitenet.net>
 | 
						|
Date: Thu, 18 Apr 2013 19:37:28 -0400
 | 
						|
Subject: [PATCH] build without TH
 | 
						|
 | 
						|
Used the EvilSplicer to expand the TH
 | 
						|
 | 
						|
Left off CmdArgs to save time.
 | 
						|
---
 | 
						|
 DAV.cabal                       |   20 +----
 | 
						|
 Network/Protocol/HTTP/DAV.hs    |   53 ++++++++++---
 | 
						|
 Network/Protocol/HTTP/DAV/TH.hs |  167 ++++++++++++++++++++++++++++++++++++++-
 | 
						|
 3 files changed, 207 insertions(+), 33 deletions(-)
 | 
						|
 | 
						|
diff --git a/DAV.cabal b/DAV.cabal
 | 
						|
index 774d4e5..8b85133 100644
 | 
						|
--- a/DAV.cabal
 | 
						|
+++ b/DAV.cabal
 | 
						|
@@ -38,25 +38,7 @@ library
 | 
						|
                      , transformers >= 0.3
 | 
						|
                      , xml-conduit >= 1.0          && <= 1.1
 | 
						|
                      , xml-hamlet >= 0.4           && <= 0.5
 | 
						|
-executable hdav
 | 
						|
-  main-is:           hdav.hs
 | 
						|
-  ghc-options:       -Wall
 | 
						|
-  build-depends:       base >= 4.5                 && <= 5
 | 
						|
-                     , bytestring
 | 
						|
-                     , bytestring
 | 
						|
-                     , case-insensitive >= 0.4
 | 
						|
-                     , cmdargs >= 0.9
 | 
						|
-                     , containers
 | 
						|
-                     , http-conduit >= 1.4
 | 
						|
-                     , http-types >= 0.7
 | 
						|
-                     , lens >= 3.0
 | 
						|
-                     , lifted-base >= 0.1
 | 
						|
-                     , mtl >= 2.1
 | 
						|
-                     , network >= 2.3
 | 
						|
-                     , resourcet >= 0.3
 | 
						|
-                     , transformers >= 0.3
 | 
						|
-                     , xml-conduit >= 1.0          && <= 1.1
 | 
						|
-                     , xml-hamlet >= 0.4           && <= 0.5
 | 
						|
+                     , text
 | 
						|
 
 | 
						|
 source-repository head
 | 
						|
   type:     git
 | 
						|
diff --git a/Network/Protocol/HTTP/DAV.hs b/Network/Protocol/HTTP/DAV.hs
 | 
						|
index 02e5d15..c0be362 100644
 | 
						|
--- a/Network/Protocol/HTTP/DAV.hs
 | 
						|
+++ b/Network/Protocol/HTTP/DAV.hs
 | 
						|
@@ -52,7 +52,8 @@ import Network.HTTP.Types (hContentType, Method, Status, RequestHeaders, unautho
 | 
						|
 
 | 
						|
 import qualified Text.XML as XML
 | 
						|
 import Text.XML.Cursor (($/), (&/), element, node, fromDocument, checkName)
 | 
						|
-import Text.Hamlet.XML (xml)
 | 
						|
+import Text.Hamlet.XML
 | 
						|
+import qualified Data.Text
 | 
						|
 
 | 
						|
 import Data.CaseInsensitive (mk)
 | 
						|
 
 | 
						|
@@ -246,18 +247,48 @@ makeCollection url username password = withDS url username password $
 | 
						|
 propname :: XML.Document
 | 
						|
 propname = XML.Document (XML.Prologue [] Nothing []) root []
 | 
						|
     where
 | 
						|
-        root = XML.Element "D:propfind" (Map.fromList [("xmlns:D", "DAV:")]) [xml|
 | 
						|
-<D:allprop>
 | 
						|
-|]
 | 
						|
+        root = XML.Element "D:propfind" (Map.fromList [("xmlns:D", "DAV:")])  $         concat
 | 
						|
+          [[XML.NodeElement
 | 
						|
+              (XML.Element
 | 
						|
+                 (XML.Name
 | 
						|
+                    (Data.Text.pack "D:allprop") Nothing Nothing)
 | 
						|
+                 Map.empty
 | 
						|
+                 (concat []))]]
 | 
						|
+
 | 
						|
 
 | 
						|
 locky :: XML.Document
 | 
						|
 locky = XML.Document (XML.Prologue [] Nothing []) root []
 | 
						|
     where
 | 
						|
-        root = XML.Element "D:lockinfo" (Map.fromList [("xmlns:D", "DAV:")]) [xml|
 | 
						|
-<D:lockscope>
 | 
						|
-  <D:exclusive>
 | 
						|
-<D:locktype>
 | 
						|
-  <D:write>
 | 
						|
-<D:owner>Haskell DAV user
 | 
						|
-|]
 | 
						|
+        root = XML.Element "D:lockinfo" (Map.fromList [("xmlns:D", "DAV:")])  $         concat
 | 
						|
+          [[XML.NodeElement
 | 
						|
+              (XML.Element
 | 
						|
+                 (XML.Name
 | 
						|
+                    (Data.Text.pack "D:lockscope") Nothing Nothing)
 | 
						|
+                 Map.empty
 | 
						|
+                 (concat
 | 
						|
+                    [[XML.NodeElement
 | 
						|
+                        (XML.Element
 | 
						|
+                           (XML.Name
 | 
						|
+                              (Data.Text.pack "D:exclusive") Nothing Nothing)
 | 
						|
+                           Map.empty
 | 
						|
+                           (concat []))]]))],
 | 
						|
+           [XML.NodeElement
 | 
						|
+              (XML.Element
 | 
						|
+                 (XML.Name
 | 
						|
+                    (Data.Text.pack "D:locktype") Nothing Nothing)
 | 
						|
+                 Map.empty
 | 
						|
+                 (concat
 | 
						|
+                    [[XML.NodeElement
 | 
						|
+                        (XML.Element
 | 
						|
+                           (XML.Name (Data.Text.pack "D:write") Nothing Nothing)
 | 
						|
+                           Map.empty
 | 
						|
+                           (concat []))]]))],
 | 
						|
+           [XML.NodeElement
 | 
						|
+              (XML.Element
 | 
						|
+                 (XML.Name (Data.Text.pack "D:owner") Nothing Nothing)
 | 
						|
+                 Map.empty
 | 
						|
+                 (concat
 | 
						|
+                    [[XML.NodeContent
 | 
						|
+                        (Data.Text.pack "Haskell DAV user")]]))]]
 | 
						|
+
 | 
						|
 
 | 
						|
diff --git a/Network/Protocol/HTTP/DAV/TH.hs b/Network/Protocol/HTTP/DAV/TH.hs
 | 
						|
index 036a2bc..4d3c0f4 100644
 | 
						|
--- a/Network/Protocol/HTTP/DAV/TH.hs
 | 
						|
+++ b/Network/Protocol/HTTP/DAV/TH.hs
 | 
						|
@@ -16,11 +16,13 @@
 | 
						|
 -- You should have received a copy of the GNU General Public License
 | 
						|
 -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 
 | 
						|
-{-# LANGUAGE TemplateHaskell #-}
 | 
						|
+{-# LANGUAGE RankNTypes  #-}
 | 
						|
 
 | 
						|
 module Network.Protocol.HTTP.DAV.TH where
 | 
						|
 
 | 
						|
-import Control.Lens (makeLenses)
 | 
						|
+import Control.Lens
 | 
						|
+import qualified Control.Lens.Type
 | 
						|
+import qualified Data.Functor
 | 
						|
 import qualified Data.ByteString as B
 | 
						|
 import Network.HTTP.Conduit (Manager, Request)
 | 
						|
 
 | 
						|
@@ -33,4 +35,163 @@ data DAVContext a = DAVContext {
 | 
						|
   , _basicusername :: B.ByteString
 | 
						|
   , _basicpassword :: B.ByteString
 | 
						|
 }
 | 
						|
-makeLenses ''DAVContext
 | 
						|
+allowedMethods ::
 | 
						|
+  forall a_a4Oo.
 | 
						|
+  Control.Lens.Type.Lens' (DAVContext a_a4Oo) [B.ByteString]
 | 
						|
+allowedMethods
 | 
						|
+  _f_a5tt
 | 
						|
+  (DAVContext __allowedMethods'_a5tu
 | 
						|
+              __baseRequest_a5tw
 | 
						|
+              __complianceClasses_a5tx
 | 
						|
+              __httpManager_a5ty
 | 
						|
+              __lockToken_a5tz
 | 
						|
+              __basicusername_a5tA
 | 
						|
+              __basicpassword_a5tB)
 | 
						|
+  = ((\ __allowedMethods_a5tv
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5tv
 | 
						|
+             __baseRequest_a5tw
 | 
						|
+             __complianceClasses_a5tx
 | 
						|
+             __httpManager_a5ty
 | 
						|
+             __lockToken_a5tz
 | 
						|
+             __basicusername_a5tA
 | 
						|
+             __basicpassword_a5tB)
 | 
						|
+     Data.Functor.<$> (_f_a5tt __allowedMethods'_a5tu))
 | 
						|
+{-# INLINE allowedMethods #-}
 | 
						|
+baseRequest ::
 | 
						|
+  forall a_a4Oo a_a5tC.
 | 
						|
+  Control.Lens.Type.Lens (DAVContext a_a4Oo) (DAVContext a_a5tC) (Request a_a4Oo) (Request a_a5tC)
 | 
						|
+baseRequest
 | 
						|
+  _f_a5tD
 | 
						|
+  (DAVContext __allowedMethods_a5tE
 | 
						|
+              __baseRequest'_a5tF
 | 
						|
+              __complianceClasses_a5tH
 | 
						|
+              __httpManager_a5tI
 | 
						|
+              __lockToken_a5tJ
 | 
						|
+              __basicusername_a5tK
 | 
						|
+              __basicpassword_a5tL)
 | 
						|
+  = ((\ __baseRequest_a5tG
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5tE
 | 
						|
+             __baseRequest_a5tG
 | 
						|
+             __complianceClasses_a5tH
 | 
						|
+             __httpManager_a5tI
 | 
						|
+             __lockToken_a5tJ
 | 
						|
+             __basicusername_a5tK
 | 
						|
+             __basicpassword_a5tL)
 | 
						|
+     Data.Functor.<$> (_f_a5tD __baseRequest'_a5tF))
 | 
						|
+{-# INLINE baseRequest #-}
 | 
						|
+basicpassword ::
 | 
						|
+  forall a_a4Oo.
 | 
						|
+  Control.Lens.Type.Lens' (DAVContext a_a4Oo) B.ByteString
 | 
						|
+basicpassword
 | 
						|
+  _f_a5tM
 | 
						|
+  (DAVContext __allowedMethods_a5tN
 | 
						|
+              __baseRequest_a5tO
 | 
						|
+              __complianceClasses_a5tP
 | 
						|
+              __httpManager_a5tQ
 | 
						|
+              __lockToken_a5tR
 | 
						|
+              __basicusername_a5tS
 | 
						|
+              __basicpassword'_a5tT)
 | 
						|
+  = ((\ __basicpassword_a5tU
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5tN
 | 
						|
+             __baseRequest_a5tO
 | 
						|
+             __complianceClasses_a5tP
 | 
						|
+             __httpManager_a5tQ
 | 
						|
+             __lockToken_a5tR
 | 
						|
+             __basicusername_a5tS
 | 
						|
+             __basicpassword_a5tU)
 | 
						|
+     Data.Functor.<$> (_f_a5tM __basicpassword'_a5tT))
 | 
						|
+{-# INLINE basicpassword #-}
 | 
						|
+basicusername ::
 | 
						|
+  forall a_a4Oo.
 | 
						|
+  Control.Lens.Type.Lens' (DAVContext a_a4Oo) B.ByteString
 | 
						|
+basicusername
 | 
						|
+  _f_a5tV
 | 
						|
+  (DAVContext __allowedMethods_a5tW
 | 
						|
+              __baseRequest_a5tX
 | 
						|
+              __complianceClasses_a5tY
 | 
						|
+              __httpManager_a5tZ
 | 
						|
+              __lockToken_a5u0
 | 
						|
+              __basicusername'_a5u1
 | 
						|
+              __basicpassword_a5u3)
 | 
						|
+  = ((\ __basicusername_a5u2
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5tW
 | 
						|
+             __baseRequest_a5tX
 | 
						|
+             __complianceClasses_a5tY
 | 
						|
+             __httpManager_a5tZ
 | 
						|
+             __lockToken_a5u0
 | 
						|
+             __basicusername_a5u2
 | 
						|
+             __basicpassword_a5u3)
 | 
						|
+     Data.Functor.<$> (_f_a5tV __basicusername'_a5u1))
 | 
						|
+{-# INLINE basicusername #-}
 | 
						|
+complianceClasses ::
 | 
						|
+  forall a_a4Oo.
 | 
						|
+  Control.Lens.Type.Lens' (DAVContext a_a4Oo) [B.ByteString]
 | 
						|
+complianceClasses
 | 
						|
+  _f_a5u4
 | 
						|
+  (DAVContext __allowedMethods_a5u5
 | 
						|
+              __baseRequest_a5u6
 | 
						|
+              __complianceClasses'_a5u7
 | 
						|
+              __httpManager_a5u9
 | 
						|
+              __lockToken_a5ua
 | 
						|
+              __basicusername_a5ub
 | 
						|
+              __basicpassword_a5uc)
 | 
						|
+  = ((\ __complianceClasses_a5u8
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5u5
 | 
						|
+             __baseRequest_a5u6
 | 
						|
+             __complianceClasses_a5u8
 | 
						|
+             __httpManager_a5u9
 | 
						|
+             __lockToken_a5ua
 | 
						|
+             __basicusername_a5ub
 | 
						|
+             __basicpassword_a5uc)
 | 
						|
+     Data.Functor.<$> (_f_a5u4 __complianceClasses'_a5u7))
 | 
						|
+{-# INLINE complianceClasses #-}
 | 
						|
+httpManager ::
 | 
						|
+  forall a_a4Oo. Control.Lens.Type.Lens' (DAVContext a_a4Oo) Manager
 | 
						|
+httpManager
 | 
						|
+  _f_a5ud
 | 
						|
+  (DAVContext __allowedMethods_a5ue
 | 
						|
+              __baseRequest_a5uf
 | 
						|
+              __complianceClasses_a5ug
 | 
						|
+              __httpManager'_a5uh
 | 
						|
+              __lockToken_a5uj
 | 
						|
+              __basicusername_a5uk
 | 
						|
+              __basicpassword_a5ul)
 | 
						|
+  = ((\ __httpManager_a5ui
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5ue
 | 
						|
+             __baseRequest_a5uf
 | 
						|
+             __complianceClasses_a5ug
 | 
						|
+             __httpManager_a5ui
 | 
						|
+             __lockToken_a5uj
 | 
						|
+             __basicusername_a5uk
 | 
						|
+             __basicpassword_a5ul)
 | 
						|
+     Data.Functor.<$> (_f_a5ud __httpManager'_a5uh))
 | 
						|
+{-# INLINE httpManager #-}
 | 
						|
+lockToken ::
 | 
						|
+  forall a_a4Oo.
 | 
						|
+  Control.Lens.Type.Lens' (DAVContext a_a4Oo) (Maybe B.ByteString)
 | 
						|
+lockToken
 | 
						|
+  _f_a5um
 | 
						|
+  (DAVContext __allowedMethods_a5un
 | 
						|
+              __baseRequest_a5uo
 | 
						|
+              __complianceClasses_a5up
 | 
						|
+              __httpManager_a5uq
 | 
						|
+              __lockToken'_a5ur
 | 
						|
+              __basicusername_a5ut
 | 
						|
+              __basicpassword_a5uu)
 | 
						|
+  = ((\ __lockToken_a5us
 | 
						|
+        -> DAVContext
 | 
						|
+             __allowedMethods_a5un
 | 
						|
+             __baseRequest_a5uo
 | 
						|
+             __complianceClasses_a5up
 | 
						|
+             __httpManager_a5uq
 | 
						|
+             __lockToken_a5us
 | 
						|
+             __basicusername_a5ut
 | 
						|
+             __basicpassword_a5uu)
 | 
						|
+     Data.Functor.<$> (_f_a5um __lockToken'_a5ur))
 | 
						|
+{-# INLINE lockToken #-}
 | 
						|
-- 
 | 
						|
1.7.10.4
 | 
						|
 |