From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.236.47.138 with SMTP id t10cs70969yhb; Wed, 2 Nov 2011 17:04:32 -0700 (PDT) Received: by 10.220.1.200 with SMTP id 8mr496731vcg.190.1320278670451; Wed, 02 Nov 2011 17:04:30 -0700 (PDT) Return-Path: Received: from rubyforge.org (rubyforge.org. [205.234.109.19]) by mx.google.com with ESMTP id k19si968980vcq.130.2011.11.02.17.04.30; Wed, 02 Nov 2011 17:04:30 -0700 (PDT) Received-SPF: pass (google.com: domain of sup-devel-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) client-ip=205.234.109.19; Authentication-Results: mx.google.com; spf=pass (google.com: domain of sup-devel-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) smtp.mail=sup-devel-bounces@rubyforge.org; dkim=neutral (body hash did not verify) header.i=@gmail.com Received: from rubyforge.org (rubyforge.org [127.0.0.1]) by rubyforge.org (Postfix) with ESMTP id 127701678368; Wed, 2 Nov 2011 20:04:30 -0400 (EDT) Received: from mail-fx0-f50.google.com (mail-fx0-f50.google.com [209.85.161.50]) by rubyforge.org (Postfix) with ESMTP id 4CBC7185834E for ; Wed, 2 Nov 2011 19:56:01 -0400 (EDT) Received: by faap19 with SMTP id p19so1276329faa.23 for ; Wed, 02 Nov 2011 16:56:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; bh=ZRSfrB9L8cAKBkOVf+jDIuE96P+hiBuB774xpwYugQg=; b=iCh1+7eaidfQWGq14dLC9y0Pk9z5LAzt7x7mHprJNFAs4qPJocUQZcGQiLL7PNZWFp HVy41cg32g2RIf6is4XF8oc7B5hxABiKtktOeg3EUHhRAWRi9tFiHkiULDZzKGTxWdx3 JaT8ZKg1IN/I17+uPmuVprxeGk0sM6WQooO2A= Received: by 10.223.17.3 with SMTP id q3mr11909770faa.28.1320278161195; Wed, 02 Nov 2011 16:56:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.93.197 with HTTP; Wed, 2 Nov 2011 16:55:40 -0700 (PDT) From: Matthieu Rakotojaona Date: Thu, 3 Nov 2011 00:55:40 +0100 Message-ID: To: sup-devel Content-Type: multipart/mixed; boundary=00151743f846cd815404b0c936d2 Subject: [sup-devel] heliotrope-syncback X-BeenThere: sup-devel@rubyforge.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Sup developer discussion List-Id: Sup developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: sup-devel-bounces@rubyforge.org Errors-To: sup-devel-bounces@rubyforge.org --00151743f846cd815404b0c936d2 Content-Type: text/plain; charset=UTF-8 Hello everyone, I am playing around with heliotrope, and I've managed to writo a ruby script to sync changes you made there in your IMAP mailbox. It is primarily intended to be used with GMail, but nothing prevents it from working with others. Basically, this is how it works : - when you make a change in heliotrope, it is written in an external file - the script reads the file line by line and applies back any changes At the moment, I've only logged messages and state changes. When you send a mail with GMail, it is automatically added in GMail "Sent" mail, so I thought heliotrope could automagically thread it, but I haven't tested yet. The changes in thu imap folder happen like this : - search for a thread with the "subject" we are interested in - label/unlabel each message in the thread - change state of each message as written in the log file Many problems : - first and foremost, the link between a thread in heliotrope and the same in GMail is done through a basic IMAP search on the entire "subject" string. I don't know about how the threading happens in heliotrope, but I hope both are the same - the ruby Net::IMAP library doesn't want to send non-ascii characters ( or I'm too dumb to see how to). So I decided to do it the hard way : remove any word (blocks of chars separated by spaces) that contains any non-ascii characters. Well, I,ve just removed one character for the moment, because I had an error when trying to match a UTF-8 string with a Unicode regexp. - "states" should be message-centered, as explained in the comments, yet I don't know how to link messages in heliotrope and messages in GMail. And I don't think searching through the whole body of the messages in GMail would be very fast. So, I changed the state of all the messages in the thread. After all, when I have an "Unseen" message in a thread, seeing the whole thread looks interesting; same for "Starred". - I've heard the ruby IMAP lib is buggy; what is it exactly ? All in all, the most important part of the process is just the writing of the logfile. (One of) My main problem with switching to heliotrope entirely is the fact that it doesn't sync with anything else. So now, if I have a log of everything I've done, I can at least do the same changes by hand. And the script is to be run apart from everything else, because I don't think it's part of heliotrope job to sync with other mailserver. In fact, this script is more of a "fiddle around to learn ruby" script, so please don't care about the code quality =] Cya, -- Matthieu RAKOTOJAONA --00151743f846cd815404b0c936d2 Content-Type: application/octet-stream; name=patch Content-Disposition: attachment; filename=patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_guizgvrl0 ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGE2NGMyZjguLjg2OTM1 ODQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDUg QEAKIC4qLnN3cAogLiouc3dvCittYWlsc3RvcmUvCit0YWdzCitsb2dmaWxlLnR4dApkaWZmIC0t Z2l0IGEvYmluL2hlbGlvdHJvcGUtc3luY2JhY2sgYi9iaW4vaGVsaW90cm9wZS1zeW5jYmFjawpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTcwYjA4Ci0tLSAvZGV2L251bGwK KysrIGIvYmluL2hlbGlvdHJvcGUtc3luY2JhY2sKQEAgLTAsMCArMSwxNzAgQEAKKyMhL3Vzci9i aW4vZW52IHJ1YnkKKyMgZW5jb2Rpbmc6IFVURi04CisKK3JlcXVpcmUgJ2pzb24nCityZXF1aXJl ICduZXQvaW1hcCcKK3JlcXVpcmUgJ3NldCcKKworZGVmIHJlbW92ZV93b3Jkc19mb3JfaW1hcF9j b21wbGlhbmNlIHN0cmluZworCSMgTmV0OjpJTUFQIG9ubHkgd2FudHMgdG8gc2VuZCBBU0NJSSBz dHJpbmcuIDogc2VlIGltYXAucmI6MTIyNAorCSMgU28gd2UgaGF2ZSB0byByZW1vdmUgZXZlcnkg Y2hhcmFjdGVyIHRoYXQgaXMgbm90IGFzY2lpICh3ZSBjYW5ub3QKKwkjIGNvbnZlcnQpCisJIyBU aGUgdGhpbmcgaXMsIE5ldDo6SU1BUCBpcyBvbmx5IHVzZWQgIGZvciBzZWFyY2guIFNvIHdlIGhh dmUgdG8gcmVtb3ZlCisJIyBlbnRpcmUgd29yZHMgd2VyZSBub24tYXNjaWkgY2hhcmFjdGVycyBh cHBlYXIKKwl3b3Jkc19saXN0ID0gc3RyaW5nLnNwbGl0CisJb3V0ID0gIiIKKwl3b3Jkc19saXN0 LmVhY2ggZG8gfHd8CisJCWlmIHcubWF0Y2ggL1x1MDBlOS91ICMgc3VwcG9zZWQgdG8gYmUgw6kg OiByZW1vdmUgdGhlIHdvcmQsIGRvbid0IG5lZWQgdG8gcGFyc2UgaXQgYW55IGZ1cnRoZXIKKwkJ CW5leHQKKwkJZWxzaWYgdy5tYXRjaCAvXHUwMDkyL3UgIyB1c2VkIGluIGEgbWFsZm9ybWVkIHNl bnRlbmNlIHRvIG1lYW4gJworCQkJdy5nc3ViISAvXHUwMDkyL3UsICJcdTAwMjciCisJCWVuZAor CQlvdXQgPDwgIiAiIDw8IHcKKwllbmQKKworCW91dC5zdHJpcCAKK2VuZAorCQkKKworQGxvZ2Zp bGUgPSAibG9nZmlsZS50eHQiCisKKworIyMgdGhlc2UgYXJlIHRoaW5ncyB0aGF0IGNhbiBiZSBz ZXQgb24gYSBwZXItbWVzc2FnZSBiYXNpcy4gZWFjaCBvbmUKKyMjIGNvcnJlc3BvbmRzIHRvIGEg cGFydGljdWxhciBsYWJlbCwgYnV0IGxhYmVscyBhcmUgcHJvcGFnYXRlZCBhdCB0aGUKKyMjIHRo cmVhZCBsZXZlbCB3aGVyZWFzIHN0YXRlIGlzIG5vdC4KK01FU1NBR0VfTVVUQUJMRV9TVEFURSA9 IFNldC5uZXcgJXcoc3RhcnJlZCB1bnJlYWQgZGVsZXRlZCkKKyMjIGZsYWdzIHRoYXQgYXJlIHNl dCBwZXItbWVzc2FnZSBidXQgYXJlIG5vdCBtb2RpZmlhYmxlIGJ5IHRoZSB1c2VyCitNRVNTQUdF X0lNTVVUQUJMRV9TVEFURSA9IFNldC5uZXcgJXcoYXR0YWNobWVudCBzaWduZWQgZW5jcnlwdGVk IGRyYWZ0IHNlbnQpCitNRVNTQUdFX1NUQVRFID0gTUVTU0FHRV9NVVRBQkxFX1NUQVRFICsgTUVT U0FHRV9JTU1VVEFCTEVfU1RBVEUKKworCisKKworaWYgRmlsZS5leGlzdHM/IEBsb2dmaWxlCisJ bG9nZmlsZSA9IEZpbGUub3BlbiggQGxvZ2ZpbGUsInIrIikKK2Vsc2UKKwlsb2dmaWxlID0gRmls ZS5uZXcoIEBsb2dmaWxlLCJyKyIpCitlbmQKK3B1dHMgIi0tIFJlYWRpbmcgb3BlcmF0aW9ucyBv biAje1RpbWUubm93fSIKKworcHV0cyAiLS0gY29ubmVjdGluZyB0byBHTWFpbCIKK2ltYXAgPSBO ZXQ6OklNQVAubmV3KCJpbWFwLmdtYWlsLmNvbSIsIjk5MyIsdHJ1ZSkKK2ltYXAubG9naW4oInNh bHV0bGVzYW1pcy5jb3Vjb3VAZ21haWwuY29tIiwgImNvdWNvdXBhc3N3b3JkIikKK3B1dHMgIi0t IGNvbm5lY3RlZCB0byBHTWFpbCIgCisKK2xvZ2ZpbGUuZWFjaCBkbyB8bGluZXwgCisJaGFzaCA9 IEpTT04ucGFyc2UgbGluZQorCXN1YmplY3QgPSBoYXNoWyJzdWJqZWN0Il0KKworCXN1YmplY3Qg PSByZW1vdmVfd29yZHNfZm9yX2ltYXBfY29tcGxpYW5jZSBzdWJqZWN0CisJbGFiZWxzX3RvX2Fk ZCA9IFNldC5uZXcgaGFzaFsibGFiZWxzX3RvX2FkZCJdIAorCWxhYmVsc190b19yZW1vdmUgPSBT ZXQubmV3IGhhc2hbImxhYmVsc190b19yZW1vdmUiXSAKKwlzdGF0ZXNfdG9fYWRkID0gU2V0Lm5l dyBoYXNoWyJzdGF0ZXNfdG9fYWRkIl0gCisJc3RhdGVzX3RvX3JlbW92ZSA9IFNldC5uZXcgaGFz aFsic3RhdGVzX3RvX3JlbW92ZSJdIAorCXB1dHMgIi0tIFdvcmsgb24gWyN7c3ViamVjdH1dIgor CisjIGxhYmVscyBzaG91bGRuJ3QgY29udGFpbiBtZXNzYWdlIHN0YXRlcyA/CisJbGFiZWxzX3Rv X2FkZCA9IGxhYmVsc190b19hZGQgLSBNRVNTQUdFX01VVEFCTEVfU1RBVEUKKwlsYWJlbHNfdG9f cmVtb3ZlID0gbGFiZWxzX3RvX3JlbW92ZSAtIE1FU1NBR0VfTVVUQUJMRV9TVEFURQorCisjIGFk ZCBsYWJlbCB0byB0aHJlYWQKKyMgZXhjZXB0IGlmIGxhYmVsIGlzIG9uZSBvZiBNRVNTQUdFX01V VEFCTEVfU1RBVEUKKwlpZiAhbGFiZWxzX3RvX2FkZC5lbXB0eT8KKwkJbGFiZWxzX3RvX2FkZC5l YWNoIGRvIHxsYWJlbHwKKwkJCWlmIG5vdCBpbWFwLmxpc3QoJycsIGxhYmVsKQorCQkJCXB1dHMg IgljcmVhdGUgbGFiZWwgI3tsYWJlbH0gb24gcmVtb3RlIgorCQkJCWltYXAuY3JlYXRlKGxhYmVs KQorCQkJZW5kCisJCQlpbWFwLnNlbGVjdCgnW0dtYWlsXS9BbGwgTWFpbCcpICNBbGwgbWFpbHMg YXJlIGluICJBbGwgTWFpbCI7IGRvIG9wcyBmcm9tIGhlcmUKKwkJCSMgSGVyZSdzIHRoZSB3ZWFr IHBhcnQgOiBtZXNzYWdlcyBhcmUgb25seSBwcm9wYWdhdGVkIGlmIHRoZSBzZWFyY2ggb24KKwkJ CSMgdGhlIHJlbW90ZSBzZXJ2ZXIgaXMgc3VjY2Vzc2Z1bCA9PiBwcm9ibGVtcyB3aXRoIG1hbGZv cm1lZCAic3ViamVjdCIKKwkJCSMgc3RyaW5ncyAKKwkJCWltYXAudWlkX3NlYXJjaChbIlNVQkpF Q1QiLCBzdWJqZWN0XSkuZWFjaCBkbyB8bWVzc2FnZV91aWR8CisJCQkJcHV0cyAiCWFkZCBsYWJl bCAje2xhYmVsfSBvbiBtZXNzYWdlICN7bWVzc2FnZV91aWR9IgorCQkJCWltYXAudWlkX2NvcHkg bWVzc2FnZV91aWQsIGxhYmVsCisJCQkJIyBOb3RlIDogR21haWwgZG9lcyBzdXBwb3J0IElNQVAg a2V5d29yZHMgKHRoZXNlIDoKKwkJCQkjIGh0dHA6Ly9kZWZsZXhpb24uY29tLzIwMDYvMDUvc2Vy dmVyLXNpZGUtbWVzc2FnZS1sYWJlbHMpCisJCQkJIyBidXQgdGhleSBhcmUgbm90IHVzZWQgYnkg R21haWwgaW4gYW55IHdheSAtLSBlc3BlY2lhbGx5LCB0aGV5CisJCQkJIyBhcmUgbm90IHZpc2li bGUgb24gdGhlIHdlYm1haWwgVUkgLS0gc28gd2UgZG9uJ3QgdXBkYXRlIHRoaXMgZmllbGQsIGFs dGhvdWdoIGl0IHdvdWxkIGJlIHByZWZlcnJhYmxlCisJCQllbmQKKwkJZW5kCisJZW5kCisKKwor I2FkZCBzdGF0ZSB0byB0aHJlYWQKKwlpZiAhc3RhdGVzX3RvX2FkZC5lbXB0eT8KKwkJc3RhdGVz X3RvX2FkZC5lYWNoIGRvIHxzdGF0ZXwKKwkJCWlmIHN0YXRlID09ICJzdGFycmVkIiAjIFN0YXJy ZWQgaXMgdG8gYmUgZGVhbHQgd2l0aCBsaWtlIGEgbGFiZWwKKwkJCQlpZiBub3QgaW1hcC5saXN0 KCcnLCAiW0dtYWlsXS9TdGFycmVkIikKKwkJCQkJcHV0cyAiCWNyZWF0ZSBsYWJlbCBbR21haWxd L1N0YXJyZWQgb24gcmVtb3RlIgorCQkJCQlpbWFwLmNyZWF0ZSgiW0dtYWlsXS9TdGFycmVkIikK KwkJCQllbmQKKwkJCQlpbWFwLnNlbGVjdCgnW0dtYWlsXS9BbGwgTWFpbCcpIAorCQkJCSMgUHJv YmxlbSA6IHdlIGNhbid0IHNlYXJjaCBmb3IgYSBzcGVjaWZpYyBtZXNzYWdlLCB1bmxlc3Mgd2Ug c2VhcmNoIGZvcgorCQkJCSMgdGhlIHdob2xlIGNvbnRlbnQgb2YgZWFjaCBtZXNzYWdlLiBTbyB3 ZSBzdGFyIHRoZSB3aG9sZSBsYWJlbAorCQkJCWltYXAudWlkX3NlYXJjaChbIlNVQkpFQ1QiLCBz dWJqZWN0XSkuZWFjaCBkbyB8bWVzc2FnZV91aWR8CisJCQkJCXB1dHMgIglzdGFyIG1lc3NhZ2Ug I3ttZXNzYWdlX3VpZH0iCisJCQkJCWltYXAudWlkX2NvcHkgbWVzc2FnZV91aWQsICJbR21haWxd L1N0YXJyZWQiCisJCQkJZW5kCisJCQllbHNpZiBzdGF0ZSA9PSAidW5yZWFkIgorCQkJCQkjIFNh bWUgcHJvYmxlbSBoZXJlIDogd2UgaGF2ZSB0byBhcHBseSB0aGUgdHJlYXRtZW50IHRvIHRoZSB3 aG9sZSB0aHJlYWQKKwkJCQkJaW1hcC51aWRfc2VhcmNoKFsiU1VCSkVDVCIsIHN1YmplY3RdKS5l YWNoIGRvIHxtZXNzYWdlX3VpZHwKKwkJCQkJCXB1dHMgIgltYXJrIG1lc3NhZ2UgI3ttZXNzYWdl X3VpZH0gYXMgdW5yZWFkIgorCQkJCQkJaW1hcC51aWRfc3RvcmUgbWVzc2FnZV91aWQsICItRkxB R1MiLCBbOlNlZW5dCisJCQkJCWVuZAorCQkJZWxzaWYgc3RhdGUgPT0gImRlbGV0ZWQiCisJCQkJ IyBJIGRvbid0IHdhbnQgdG8gZGVsZXRlIG15IG1haWxzLCBzbyBJIGRvbid0IHVzZSB0aGlzCisJ CQllbmQKKwkJZW5kCisJZW5kCisKKworIyByZW1vdmUgbGFiZWwgZnJvbSB0aHJlYWQKKyMgZXhj ZXB0IGlmIGxhYmVsIGlzIG9uZSBvZiBNRVNTQUdFX01VVEFCTEVfU1RBVEUKKwlpZiAhbGFiZWxz X3RvX3JlbW92ZS5lbXB0eT8KKwkJbGFiZWxzX3RvX3JlbW92ZS5lYWNoIGRvIHxsYWJlbHwKKwkJ CWlmIG5vdCBpbWFwLmxpc3QoJycsIGxhYmVsKQorCQkJCXB1dHMgImVycm9yIGluIHRocmVhZCA6 IGxhYmVsICN7bGFiZWx9IGRvZXNuJ3QgZXhpc3QiCisJCQllbmQKKwkJCWltYXAuc2VsZWN0IGxh YmVsCisJCQlpbWFwLnVpZF9zZWFyY2goWyJTVUJKRUNUIiwgc3ViamVjdF0pLmVhY2ggZG8gfG1l c3NhZ2VfdWlkfAorCQkJCXB1dHMgIglkZWxldGUgbGFiZWwgI3tsYWJlbH0gb24gbWVzc2FnZSAj e21lc3NhZ2VfdWlkfSIKKwkJCQlpbWFwLnVpZF9zdG9yZSBtZXNzYWdlX3VpZCwgIitGTEFHUyIs IFs6RGVsZXRlZF0KKwkJCWVuZAorCQkJaW1hcC5leHB1bmdlCisJCWVuZAorCWVuZAorCisKKyNy ZW1vdmUgc3RhdGUgdG8gdGhyZWFkCisJaWYgIXN0YXRlc190b19yZW1vdmUuZW1wdHk/CisJCXN0 YXRlc190b19yZW1vdmUuZWFjaCBkbyB8c3RhdGV8CisJCQlpZiBzdGF0ZSA9PSAic3RhcnJlZCIg IyBTdGFycmVkIGlzIHRvIGJlIGRlYWx0IHdpdGggbGlrZSBhIGxhYmVsCisJCQkJaW1hcC5zZWxl Y3QoJ1tHbWFpbF0vU3RhcnJlZCcpIAorCQkJCWltYXAudWlkX3NlYXJjaChbIlNVQkpFQ1QiLCBz dWJqZWN0XSkuZWFjaCBkbyB8bWVzc2FnZV91aWR8CisJCQkJCXB1dHMgIgl1bnN0YXIgbWVzc2Fn ZSAje21lc3NhZ2VfdWlkfSIKKwkJCQkJaW1hcC51aWRfc3RvcmUgbWVzc2FnZV91aWQsICIrRkxB R1MiLCBbOkRlbGV0ZWRdCisJCQkJZW5kCisJCQkJaW1hcC5leHB1bmdlCisJCQllbHNpZiBzdGF0 ZSA9PSAidW5yZWFkIgorCQkJCSMgU2FtZSBwcm9ibGVtIGhlcmUgOiB3ZSBoYXZlIHRvIGFwcGx5 IHRoZSB0cmVhdG1lbnQgdG8gdGhlIHdob2xlIHRocmVhZAorCQkJCWltYXAudWlkX3NlYXJjaChb IlNVQkpFQ1QiLCBzdWJqZWN0XSkuZWFjaCBkbyB8bWVzc2FnZV91aWR8CisJCQkJCXB1dHMgIglt YXJrIG1lc3NhZ2UgI3ttZXNzYWdlX3VpZH0gYXMgdW5yZWFkIgorCQkJCQlpbWFwLnVpZF9zdG9y ZSBtZXNzYWdlX3VpZCwgIitGTEFHUyIsIFs6U2Vlbl0KKwkJCQllbmQKKwkJCWVsc2lmIHN0YXRl ID09ICJkZWxldGVkIgorCQkJCSMgSSBkb24ndCB3YW50IHRvIGRlbGV0ZSBteSBtYWlscywgc28g SSBkb24ndCB1c2UgdGhpcworCQkJZW5kCisJCWVuZAorCWVuZAorCisKK2VuZAorCitpbWFwLmxv Z291dAoraW1hcC5kaXNjb25uZWN0CitwdXRzICItLSBkaXNjb25uZWN0ZWQgZnJvbSBHTWFpbCIK KworbG9nZmlsZS5jbG9zZSAKKworCmRpZmYgLS1naXQgYS9saWIvaGVsaW90cm9wZS1jbGllbnQu cmIgYi9saWIvaGVsaW90cm9wZS1jbGllbnQucmIKaW5kZXggNTQ5OTczNS4uZjYxOTZkNiAxMDA2 NDQKLS0tIGEvbGliL2hlbGlvdHJvcGUtY2xpZW50LnJiCisrKyBiL2xpYi9oZWxpb3Ryb3BlLWNs aWVudC5yYgpAQCAtNTcsNyArNTcsOSBAQCBjbGFzcyBIZWxpb3Ryb3BlQ2xpZW50CiAgIGRlZiBp bmZvOyBnZXRfanNvbigiaW5mbyIpIGVuZAogICBkZWYgc2l6ZTsgZ2V0X2pzb24oInNpemUiKVsi c2l6ZSJdIGVuZAogCi0gIGRlZiBwcnVuZV9sYWJlbHMhOyBwb3N0X2pzb24oImxhYmVscy9wcnVu ZSIpWyJsYWJlbHMiXSBlbmQKKyAgZGVmIHBydW5lX2xhYmVscyEKKwkJcG9zdF9qc29uKCJsYWJl bHMvcHJ1bmUiKVsibGFiZWxzIl0gCisJZW5kCiAKICAgZGVmIHNldF9sYWJlbHMhIHRocmVhZF9p ZCwgbGFiZWxzCiAgICAgcG9zdF9qc29uICJ0aHJlYWQvI3t0aHJlYWRfaWR9L2xhYmVscyIsIDps YWJlbHMgPT4gbGFiZWxzLnRvX2pzb24KZGlmZiAtLWdpdCBhL2xpYi9oZWxpb3Ryb3BlL21ldGEt aW5kZXgucmIgYi9saWIvaGVsaW90cm9wZS9tZXRhLWluZGV4LnJiCmluZGV4IDk4MGFkNWIuLmUx ZWUwYWYgMTAwNjQ0Ci0tLSBhL2xpYi9oZWxpb3Ryb3BlL21ldGEtaW5kZXgucmIKKysrIGIvbGli L2hlbGlvdHJvcGUvbWV0YS1pbmRleC5yYgpAQCAtMyw2ICszLDcgQEAKIHJlcXVpcmUgJ3doaXN0 bGVwaWcnCiByZXF1aXJlICdsZXZlbGRiJwogcmVxdWlyZSAnc2V0JworcmVxdWlyZSAnanNvbicK IAogY2xhc3MgQXJyYXkKICAgZGVmIG9yZGVyZWRfdW5pcQpAQCAtNDEsOCArNDIsMTkgQEAgY2xh c3MgTWV0YUluZGV4CiAgICAgQGluZGV4ID0gaW5kZXgKICAgICBAaG9va3MgPSBob29rcwogICAg IEBxdWVyeSA9IG5pbCAjIHdlIGFsd2F5cyBoYXZlIChhdCBtb3N0KSBvbmUgYWN0aXZlIHF1ZXJ5 Ci0gICAgQGRlYnVnID0gZmFsc2UKKyAgICBAZGVidWcgPSB0cnVlCiAgICAgcmVzZXRfdGltZXJz IQorCisJCUBsb2dmaWxlID0gImxvZ2ZpbGUudHh0IgorCisJCWlmIEZpbGUuZXhpc3RzPyBAbG9n ZmlsZQorCQkJbG9nZmlsZSA9IEZpbGUub3BlbiggQGxvZ2ZpbGUsImEiKQorCQllbHNlCisJCQls b2dmaWxlID0gRmlsZS5uZXcoIEBsb2dmaWxlLCJhIikKKwkJZW5kCisKKwkJbG9nZmlsZS5jbG9z ZSAKKwogICBlbmQKIAogICBkZWYgY2xvc2UKQEAgLTE3Miw3ICsxODQsNiBAQCBjbGFzcyBNZXRh SW5kZXgKICAgICBvbGRfdGxhYmVscyA9IGxvYWRfc2V0IGtleQogICAgIG5ld190bGFiZWxzID0g KG9sZF90bGFiZWxzICYgTUVTU0FHRV9TVEFURSkgKyBsYWJlbHMKICAgICB3cml0ZV9zZXQga2V5 LCBuZXdfdGxhYmVscwotCiAgICAgdGhyZWFkaW5mbyA9IGxvYWRfaGFzaCAidGhyZWFkLyN7dGhy ZWFkaWR9IgogICAgIHdyaXRlX3RocmVhZF9tZXNzYWdlX2xhYmVscyEgdGhyZWFkaW5mb1s6c3Ry dWN0dXJlXSwgbmV3X3RsYWJlbHMKIApAQCAtMzA4LDYgKzMxOSwyOSBAQCBwcml2YXRlCiAKICAg ICBjaGFuZ2VkID0gbmV3X21zdGF0ZSAhPSBvbGRfbXN0YXRlCiAgICAgd3JpdGVfc2V0IGtleSwg bmV3X21zdGF0ZSBpZiBjaGFuZ2VkCisJCQorCQkjIFdyaXRlIGNoYW5nZXMgdG8gbG9nZmlsZSB0 byBzeW5jIGJhY2sgdG8gaW1hcCBzZXJ2ZXIKKwkJa2V5ID0gImRvYy8je2RvY2lkfSIKKwkJaGFz aCA9IGxvYWRfaGFzaCBrZXkKKwkJc3ViamVjdCA9IGhhc2guZmV0Y2ggOnN1YmplY3QKKworCQls b2dmaWxlID0gRmlsZS5vcGVuKCBAbG9nZmlsZSwiYSIpCisJCXN0YXRlc190b19hZGQgPSBBcnJh eS5uZXcKKwkJc3RhdGVzX3RvX3JlbW92ZSA9IEFycmF5Lm5ldworCQkob2xkX21zdGF0ZSAtIG5l d19tc3RhdGUpLmVhY2ggeyB8bHwgc3RhdGVzX3RvX3JlbW92ZSA8PCBsIH0KKwkJKG5ld19tc3Rh dGUgLSBvbGRfbXN0YXRlICkuZWFjaCB7IHxsfCBzdGF0ZXNfdG9fYWRkIDw8IGx9CisJCWRhdGEg PSB7CisJCQk6bWVzc2FnZV9pZCA9PiBkb2NpZCwKKwkJCTpzdWJqZWN0ID0+IHN1YmplY3QsCisJ CQk6c3RhdGVzX3RvX2FkZCA9PiBzdGF0ZXNfdG9fYWRkLAorCQkJOnN0YXRlc190b19yZW1vdmUg PT4gc3RhdGVzX3RvX3JlbW92ZSwKKwkJCTpkYXRlID0+IFRpbWUubm93CisJCX0KKwkJc3RyaW5n ID0gIEpTT04uZ2VuZXJhdGUgZGF0YQorCQlsb2dmaWxlLnB1dHMgc3RyaW5nCisKKwkJbG9nZmls ZS5jbG9zZQorCiAgICAgW2NoYW5nZWQsIG5ld19tc3RhdGVdCiAgIGVuZAogCkBAIC00MTAsNiAr NDQ0LDI5IEBAIHByaXZhdGUKICAgICAgICAgcHV0cyAiOyBhZGRpbmcgfiN7bH0gdG8gI3tkb2Np ZH0iIGlmIEBkZWJ1ZwogICAgICAgICBAaW5kZXguYWRkX2xhYmVsIGRvY2lkLCBsCiAgICAgICBl bmQKKworCQkJIyBXcml0ZSBjaGFuZ2VzIHRvIGxvZ2ZpbGUgdG8gc3luYyBiYWNrIHRvIGltYXAg c2VydmVyCisKKwkJCWtleSA9ICJkb2MvI3tkb2NpZH0iCisJCQloYXNoID0gbG9hZF9oYXNoIGtl eQorCQkJc3ViamVjdCA9IGhhc2guZmV0Y2ggOnN1YmplY3QKKwkJCWxvZ2ZpbGUgPSBGaWxlLm9w ZW4oIEBsb2dmaWxlLCJhIikKKwkJCWxhYmVsc190b19hZGQgPSBBcnJheS5uZXcKKwkJCWxhYmVs c190b19yZW1vdmUgPSBBcnJheS5uZXcKKwkJCShvbGRsYWJlbHMgLSBsYWJlbHMpLmVhY2ggeyB8 bHwgbGFiZWxzX3RvX3JlbW92ZSA8PCBsIH0KKwkJCShsYWJlbHMgLSBvbGRsYWJlbHMgKS5lYWNo IHsgfGx8IGxhYmVsc190b19hZGQgPDwgbH0KKwkJCWRhdGEgPSB7CisJCQkJOm1lc3NhZ2VfaWQg PT4gZG9jaWQsCisJCQkJOnN1YmplY3QgPT4gc3ViamVjdCwKKwkJCSAJOmxhYmVsc190b19hZGQg PT4gbGFiZWxzX3RvX2FkZCwKKwkJCSAJOmxhYmVsc190b19yZW1vdmUgPT4gbGFiZWxzX3RvX3Jl bW92ZSwKKwkJCQk6ZGF0ZSA9PiBUaW1lLm5vdworCQkJfQorCQkJc3RyaW5nID0gSlNPTi5nZW5l cmF0ZSBkYXRhCQorCQkJbG9nZmlsZS5wdXRzIHN0cmluZyAKKwkJCWxvZ2ZpbGUuY2xvc2UKKwor CiAgICAgZW5kCiAgIGVuZAogCg== --00151743f846cd815404b0c936d2 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Sup-devel mailing list Sup-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-devel --00151743f846cd815404b0c936d2--