pristine:0000000824-50ef3d42de5761eb27980fbe7b27d453556c8e3713a4ade11258984df7f0f4a2 [initial record Betty Diegel **20080817203954] hash: 0000002418-fbaf08bece5031dcba8b95aee28b1d28edb3789d7b93a66b3c05570e6c3116c0 [added custom boring file Betty Diegel **20080817231603] hash: 0000000982-b54edd8309be99bcca008c5d586eaefcb19c0c7597bc1205d5d639825fad5c06 [Renamed the main module Dino Morelli **20080820235602] hash: 0000000193-f70dad868773e26be5ae6655dcc70f4d7d811698171200c2de5403a441d6b425 [Renamed this from Setup.lhs to Setup.hs and applied some minor formatting Dino Morelli **20080821000109] hash: 0000000327-8259282b6699fb993bdeafcefa6e9c46a56fe9433f39e0f4d68564af97a12201 [Added post build step to create a symlink to the binary Dino Morelli **20080821001151] hash: 0000000706-3b59c2f119a79f9287e09da80518785fcf824166745cb44caa0e7cf1a59999c1 [added dev notes Betty Diegel **20080819012318] hash: 0000000133-bdaff2abb04559d318e7eab7aef91fa88d706c89be09c9d594c07ce69f5ba960 [kickoff meeting notes Betty Diegel **20080821001057] hash: 0000000919-704dd4cd575c76ee61abd244ffed3334628e8ca8ee6b2a316c215d1cfa9be796 [Added initial TODO items Dino Morelli **20080821002826] hash: 0000000335-798fd6d35edb941def5b46ec9a1a6e035fff46bda1c873731c4a55417c0eeba6 [Removed some blank lines at the end Dino Morelli **20080821004220] hash: 0000000112-5daa61f58edc4910153391226b72687938b3c1d8261a81feb06ba18210aa0768 [Added notes about command disambiguation Dino Morelli **20080821004231] hash: 0000000330-bd7384eae04a8c9ae3c6a127332597b79e1d4916dbb14c0051c746cdd049859e [Added module for save/load of password data Dino Morelli **20080821015202 Just contains a pile of comments for now, working out the problem. ] hash: 0000000529-d7796cfe8034eda0efc415ad215e40a9907ac83f78d86164cf2ce2cf270b888c [Added a util module for misc things Dino Morelli **20080821035937 Did this to write the disam function. It may go elsewhere later. ] hash: 0000000789-5dbc6580de86e326e62b26a0f92c85fe22fb1f3087565bd1bc0eedd36e883f07 [Removed the notes about disambiguation Dino Morelli **20080821040327 It kind of wasn't the right way and there is code now in Pwstore.Util ] hash: 0000000400-35caeafdd44dae04a132743d5e5d6367f276cd7009a16d7924b61e3eb30b4b5e [Fixed some mistakes re: Pwstore.Data Dino Morelli **20080821182955] hash: 0000000312-8ce511f7cc2c22245a269a2493ff6dde15c8b3e771adb5bd8d986528d344f0ca [Added a couple more TODO items, re unit testing Dino Morelli **20080821183659] hash: 0000000191-aaaf70125528746f400c1b761dafa6b92f5d9f15aba9dcbab042e86b2e38087b [created Data module with Record type Betty Diegel **20080823020145] hash: 0000000594-373e71f5e82ea5ac5c448e7df09eb34b8dc1a5b7749d0881636117f299971c44 [formatted src Betty Diegel **20080823020946] hash: 0000000895-8d81f5501aec34ed0822da1a46f09004e5a5d66ff8e6e439720c5f935278b02c [Added dev notes about created and modified dates for our account data type. Dino Morelli **20080823023425] hash: 0000000184-a54cf13b6848c5610779f14eb3e19f534b8cc47c4e76af8d296872774fced934 [Fixed error with packaging this module Dino Morelli **20080823032150] hash: 0000000148-15126e297a9b8b1710f214b764305c15299952a73364d443153d30afdf15951d [Changed this function to take the list as an argument Dino Morelli **20080823032226 Also changed some of the identifiers in the function. Commented the function usage. ] hash: 0000000990-e002c0068c6650bb550e1f51f428f5933180b87133588e03c967dc97af23d239 [Added basic unit testing files Dino Morelli **20080823032336 Also added first unit tests: for Pwstore.Util.disam ] hash: 0000002378-347b889c7bc9782fa75b5fdf8920b09e12c4721208cba48e870c86bb798d41ea [Added a comment for the runTests setup hook Dino Morelli **20080823033049] hash: 0000000150-67691b00b4680bbf951da1b58ee533c46986a6c8d88842268167b02a205aadb6 [More work on Pwstore.Crypt, still in progress Dino Morelli **20080823163645] hash: 0000000258-afdf42b316297ab7a8ec60dba5286966d8c31f4a16824a34d75102627d7d4bcc [Reorganized the executable section Dino Morelli **20080823170858 Newer cabal files have this form with indenting and the build-depends on a per-executable or per-library basis. Also added the ghc-options to warn about everything. ] hash: 0000000579-299230f374f08532bbab8889ecb6caf8fd62e586299610b3a1a700e0e9fc48c9 [Added a cabal-version Dino Morelli **20080823171021 cabal files in this newer (indented) form cause a warning without being explicit about the version they require. ] hash: 0000000235-577d8bb8845c355510374f97ea5fb397f23d45c1f5d68ccba3bf93693e4e4d0d [Added Pwstore.Util.getpasswd function Dino Morelli **20080823171127 And also some code in pwstore.hs (where main is) to exercise it. This will almost certainly be leaving. ] hash: 0000001071-ca36325376ec40bb900e34a33a5534fb9268470408bb801776fa96334c4cff0d [Changed Pwstore.Util.getpasswd to default to stdin Dino Morelli **20080823190016 And added a function hGetpasswd that it calls which will use the supplied handle. ] hash: 0000000885-a97f4261d57395865ff01f35c2e46ae4699c88fe6cc6b97b5c29b290f2088a61 [Added a dir for developer data files Dino Morelli **20080823213524] hash: 0000000107-94825b37972c6c809d3d055e3da80bb18259f175d9556f1123a6dbc5ad8866f7 [Began implementing Pwstore.Crypt.encryptToFile Dino Morelli **20080823213602 At this stage, we're calling out to gpg. Later we want to use the Haskell Crypto package if possible. ] hash: 0000001904-a67959b4735491d50eb3f228ee3ba20c0ee7d7de163727f22784c7952afb2524 [added Accounts container Betty Diegel **20080823215454] hash: 0000000276-57113f55343ea4fc264defe5037182cef7a980f54cd73bac3346a65c242509ac [Added code to help with deserializing data Dino Morelli **20080824152203 This ended up being a little tricky. To perform read in ErrorT, I needed a function that dons wrote to lift read into MonadError (called readM). This code needs more organizational work, but I wanted to get progress so far committed. ] hash: 0000001370-54e0fc7724a92c34543aa91f05ab62120d74289539a752794520b35f4e5c9046 [Removed hout and herr from the runInteractiveProcess action Dino Morelli **20080824152504 Not using these at this time, and also not grabbing the ExitCode from waitForProcess. Have to revisit this to properly handle errors. But for now, this eliminates some compiler warnings. ] hash: 0000000454-aa077f605dc81a6edd1528a0f3aef58f458307136704117163b49a89574dc75b [Modified getpasswd functions Dino Morelli **20080825151743 Cleaned up the interface to this behavior of asking the user for passwords. There had been some ugly if/then/else code that has now been abstracted away with multiple functions: getpasswd, getpasswdV (with verification) ] hash: 0000002524-aab16cdf340a8af9ea3447c4bd5ea232f350eb8f777ca75557518da0ca6ea459 [Formalized the exports of this module Dino Morelli **20080825151932 And some other simple source code clean up. ] hash: 0000000310-3d4549a59e0dd8bb5aa6ec72b596be0505e37d2434998b710ad47f5f31188f3c [Added notes re Pwstore.Crypt Dino Morelli **20080826040749] hash: 0000000616-98059a3fbf7f9cdae26897874abf6734569797c35387b7e41758cb3db9031775 [elaborated on list command options Betty Diegel **20080827015913] hash: 0000000326-98254f8c0b8c903c95b67b6785797874c475b9537fb2caab05bc19177d6b71fe [Added a convenience function to get UNIX epoch start Dino Morelli **20080827021401 To be used to fill in default dates for things in lieu of the (non-deterministic) time now. ] hash: 0000000757-51ac3b2f8471da42a87ca4fdbdff2b1a7fc441348a3c9429c623ba7c382d32be [Removed an unused bound variable. It was generating a compile warning. Dino Morelli **20080827021520] hash: 0000000224-e6e4ddd0129f0b976bb2c937008c81ec56d62348370b0302e3a8db55fd35e00d [Moved test code out of pwstore.hs Dino Morelli **20080827022244] hash: 0000002116-4b243a699191820910a7daf765796473a5299600e180c75b3305348bb50111a5 [Changed whitespace in this source code. Dino Morelli **20080830020240] hash: 0000001036-0bafcb4c8ff2827b2ce42e4a6d965afbb8dc1387d581bf3f65663bcb600bda2c [added Show command argument parsing skeleton Betty Diegel **20080830142555] hash: 0000001519-65e83b8d55363440cb9b8bd6a61838788cb1a29fb06a904668ce9857b1bb191b [Changed Pwstore.Util.epoch to use posixSecondsToUTCTime instead of readTime on a string Dino Morelli **20080901151013] hash: 0000000366-29dd663f5e867a45e17fca94b84c0373a8de5acc639328e6fd2e65589d0a13fa [Removed Pwstore.Util.epoch Dino Morelli **20080901153218 Realized that this function was a meaningless wrapper around Data.Time.Clock.POSIX.posixSecondsToUTCTime 0 Removed it and just using posixSecondsToUTCTime in Pwstore.Data ] hash: 0000000848-336d5befe048d079e6ea9bd1f9738805b38fe5cfd104695e80d1d58e69370663 [added password and names options Betty Diegel **20080901171841] hash: 0000000667-8aff2dbf9232c2ee7ee644e971227720b540235db45b0428c3e8048bfd907726 [added sampleData Betty Diegel **20080901184240] hash: 0000000916-090be41fa1228ce85888f57e1df8c4922f9467554745add317cd6aa7aad3a9df [Changed created and modified date fields to be secs since epoch instead of UTCTime Dino Morelli **20080906231747] hash: 0000000759-9b5ec54d3adf909f1d55510d195cdc99f034ef362cfaaf5a2ca60f8ffaa7af46 [add function to add Account to Accounts Betty Diegel **20080906233126] hash: 0000000219-121b458ff2f68e00945ed93922fae0b7ee513af16e2569a816cf362ce442929f [added export list to module Betty Diegel **20080906233157] hash: 0000000243-87c81a86c2c59251634112a78c8486d4d64ad9a91255dd39559ba5a4f1529e47 [Got decrypt and encrypt functions working Dino Morelli **20080907020925 This includes the decrypt evaluating to an IO (Either String Accounts) so we can have a meaningful error message. ] hash: 0000002178-be4fcfbfa754efa26590c0ebc047eaa0fd3d0640ae218faa43a1f0210cdb656c [added export of defaultAccount Betty Diegel **20080907160845] hash: 0000000129-556381c6f24af60c46776e5b8cf4eee3522d6d124163b09fd6d0d7ee9ab80cd8 [modified getpasswordV to allow for custom prompting Betty Diegel **20080907160942] hash: 0000001015-1c03e6d9db692eeed4785a6dea353c4e42b7a9285a29c998d00d20701ba03275 [implemented getAccount function to prompt user to create new account Betty Diegel **20080907161118] hash: 0000001280-1d8aeae7d57b05b94a8b4d1e7d201d8926918371c111d33f5855710ffa39ddd2 [Changed the order of these functions in the source Dino Morelli **20080908014031 Also changed the comment description of one of them. These are obsessive changes. ] hash: 0000001027-cb1d26044d39915f181bc043db9fe10e8eed137c8a3ee0b39778673e310910ea [Changed prompt strings in testGetpasswd Dino Morelli **20080908014116] hash: 0000000325-1a8002010fb4ffd727c330a15ac5bd3846242c3eb6c329a27503375ee7fb2bad [Added PWS monad for IO with error Dino Morelli **20080908021104 Also modified Pwstore.Util.getpasswdV to work in this monad. This is in progress still. ] hash: 0000001163-a4bf4e8a3b2879bc684b8f316424e34691916f41574cf23b38fb4de9b4642712 [Changed much of Pwstore.Crypt over to the PWS monad Dino Morelli **20080908042741 This is still in progress ] hash: 0000002644-1ec9599175a3ba0fca399849230b126ef47d1b3511362028ff60c368b381518f [Working on getting getpasswd out of the IO monad as well Dino Morelli **20080908042938 Instead it would be good for it to be forall MonadIO m. This is not yet complete either. ] hash: 0000000274-a81a53335bdbd6a56b2186dfd878695ffeccaa31c91e359a0d5ac5f84dc1097e [Removed some commented out helper code for runInteractiveProcess Dino Morelli **20080908043038] hash: 0000000499-cd21429ed984cb98cb3a7c1c5089c9f6c8ee9967143b985cba9ef03e83e44727 [added function to convert y/n characters to Bool Betty Diegel **20080909024552] hash: 0000000332-5d6647da3970e637d99fadae228aefd1d10e15f43f86c9051a25c0fd884c070d [added generic prompt function to Util Betty Diegel **20080914182133 - modified getAccount to use new prompt function - modified main to support add command ] hash: 0000002949-39e173fc3236b260e310744436edbb9f26f9d109467b71116f96fe6053705073 [stdout needed to be flushed before prompting for password Betty Diegel **20080923015033] hash: 0000000154-59c05ad279e232f58e64d11775ed76a17bdfac0d7278abd78a793b6539c4c8b6 [modified prompt function to use System.IO insteand of System.Console.ReadLine Betty Diegel **20080923032459] hash: 0000000451-55332427ea88a9abf1de9dfd132e2d11aa40044f1261c02a72671a470bd82820 [Fixed getpasswd* code to correctly work within the PWS monad Dino Morelli **20080923032739] hash: 0000001382-e96a22f993c6a1650e659c912c7a7b566882ad5867ed755d822573cac5f5e0fe [Redesigned main to process our commands as PWS actions that may returns meaningful success/failure messages. Dino Morelli **20080927003507] hash: 0000001471-eb6414dda9cfb0871f1e8d4c52239b38b1fab133582f5b3b77340c0c23424321 [added prompt functions to enforce required inputs and char inputs Betty Diegel **20080927004724] hash: 0000001852-b0806706cb77336823a051eb2ccc88e0128e3272833c2c337614c036c74bc890 [Removed some test code Dino Morelli **20080927023041] hash: 0000000302-0304e1c19f646f07489a9ab9753d1fef9c804558bb3fd91b81da3d4b549a0639 [Added a lot more error handling to the decryption function Dino Morelli **20080927043726] hash: 0000000805-f70eb0d56250024596475715a4b352e72948beec1abd9ff10638c3a72eb15f54 [Added a lot more error handling to the encryption function Dino Morelli **20080927045826] hash: 0000000848-845a7211726856711823a16f3900c2d1ed540d2f6bd6d4046418ff613575ef17 [Removed 5 blank lines from end of file Dino Morelli **20080927165138] hash: 0000000126-2f638720f53e418b87a147ac516494c8a5748ebbe4059d31362da1ec713a6ad1 [Changed how error messages are formatted Dino Morelli **20080927165408] hash: 0000000756-054462d005aa87d5e71757016c71f57582d90953aa1e032402689cc907e10ce1 [Added a special form of throwError to the PWS monad Dino Morelli **20080927233450 This function, throwErrorE, simply prepends "ERROR: " to the message string you give it, and then itself calls throwError. To simplify throwing a fatal-ish looking error message. ] hash: 0000001054-f54b9d1fca6f286a619fcd48f79bef156d20538b403fa48ab66e04c3469c4158 [Commented out test functions. They were generating warnings Dino Morelli **20080928031617] hash: 0000000246-e4f5636c0dbcaf993623e5fc8cb9bc26f948153424f2f786304bd1fd33be0b36 [Commented out test functions. They were generating warnings Dino Morelli **20080928031650] hash: 0000000314-7af46db651ab224ce22afe077fa52fd364e8e40b95d85969eb674ba1eefb9896 [Added missing type definitions Betty Diegel **20080928143643] hash: 0000000191-3110972dedbc9995b59eb3773230eb3f221a70d46b996f63b72a64b2e6c6c856 [getAccount is now a PWS action that may be aborted Dino Morelli **20080928152517 In addition, password prompting is asked repeatedly until it succeeds ] hash: 0000002688-ea86045f43734b86c608ec583c63af010c46ecf9a0eb0a82a6d725380c4aaae3 [Changed getpasswd* everywhere to getPasswd* Dino Morelli **20080928170712] hash: 0000001864-989deee8ef98ff3d8b3d829acb93a69033b94d0f85f14b2f0f4fe2b971a54b0c [Redesigned getAccount (again) Dino Morelli **20080928172520 We decided that getPasswdV should keep prompting until the passwords match, and that there's no value in making this function an action in ErrorT. This cleaned up usage of this function considerably and allowed us to put back the getAccount code with liftM and ap. Other changes made throughout the code to accomodate this new development. ] hash: 0000002926-601c346b716857f82d371656e2ce5d1d0ed8f555f7412e83755009ff868372f6 [Removed testGetPasswd* functions. No longer needed. Dino Morelli **20080928172804] hash: 0000000716-c082fca50d9edbc85ae87c2fe08fa4ae382a9e7bae70c0ffa93484f877132411 [Added module for Show command functions for dumping Account data to stdout Betty Diegel **20080928222459] hash: 0000000947-75316bd02644b81c38f5f0f1d4c558f0f14bef0fd1d16cf680d0a30c9e019086 [Prefixed all field names of Account record with "act" Betty Diegel **20081012155601] hash: 0000002398-5140f4ed2d622084d6530877b062265d3086f869cc99d9b718a60381f2d00f2c [Modified field names for Account record data type Betty Diegel **20081012175308] hash: 0000000603-f324c940214b73c67dd50aeea7333c87eed268e59f78f696b569a5f2e8599ad2 [Show command now prompts for password, reads database and prints contents to stdout Betty Diegel **20081012175419] hash: 0000000295-43f6c6e8c5676391fb54731c6ab39757d2796960eda2ed548dd7b9807ed0cfed [Modified printing of result to use putStrLn instead of print function Betty Diegel **20081012175528] hash: 0000000222-acd3619d8b7f54ec0b5f9c5aedffde803a23dd8031334d89adbd3058a53ad213 [Added test for Pwstore.Crypt Dino Morelli **20090303040257 Ignore-this: 3bf2546db0aaa65383f314a4b8400a3a ] hash: 0000001377-75b2837aa3c65c10978ccd062f1125fcb58b40c96782968a58896a72c9808676