scratch/output/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/index.html
Yann Esposito (Yogsototh) c53114f72a Merge branch 'master' into next
(Recompiled)

Conflicts:
	output/Scratch/assets/css/main.css
	output/Scratch/en/blog/Yesod-excellent-ideas/index.html
	output/Scratch/en/blog/feed/feed.xml
	output/Scratch/en/blog/index.html
	output/Scratch/en/index.html
	output/Scratch/fr/blog/Yesod-excellent-ideas/index.html
	output/Scratch/fr/blog/feed/feed.xml
	output/Scratch/fr/blog/index.html
	output/Scratch/fr/index.html
	output/Scratch/sitemap.xml
	output/index.html
2011-11-16 13:08:26 +01:00

435 lines
No EOL
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="Apple, mobileme, WebDav, synchronisation, zsh, script">
<link rel="shortcut icon" type="image/x-icon" href="/Scratch/img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/main.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/twilight.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/idc.css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocomen"/>
<link rel="alternate" lang="fr" xml:lang="fr" title="Synchronisation avec mobileme (2)" type="text/html" hreflang="fr" href="/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/" />
<link rel="alternate" lang="en" xml:lang="en" title="custom website synchronisation with mobileme (2)" type="text/html" hreflang="en" href="/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/" />
<script type="text/javascript" src="/Scratch/js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="/Scratch/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/Scratch/js/index.js"></script>
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
<title>custom website synchronisation with mobileme (2)</title>
</head>
<body lang="en" class="article">
<script type="text/javascript">// <![CDATA[
document.write('<div id="blackpage"><img src="/Scratch/img/loading.gif" alt="loading..."/></div>');
// ]]>
</script>
<div id="content">
<div id="choix">
<div class="return"><a href="#entete">&darr; Menu &darr;</a></div>
<div id="choixlang">
<a href="/Scratch/fr/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/" onclick="setLanguage('fr')">en Français</a>
</div>
<div class="flush"></div>
</div>
<div id="titre">
<h1>
custom website synchronisation with mobileme (2)
</h1>
</div>
<div class="flush"></div>
<div class="flush"></div>
<div id="afterheader">
<div class="corps">
<p>I already talked about how <a href="/Scratch/en/blog/10_Synchronize_Custom_WebSite_with_mobileMe">I synchronized my website with mobileme</a>. I ameliorated this script in order to make it incremental.</p>
<p>Here is my new script, it first create a map which associate to each file its hash. After that it compare this file to the remote one. Then for each different file, update the content.</p>
<p>Even with this script I also have some problem. Mostly due to webdav issues. For example, renaming a folder work really badly (on Linux at least). I use webdavfs. For example:</p>
<div><pre class="twilight">
mv folder folder2
</pre></div>
<p>It returns OK and Ive got: </p>
<div><pre class="twilight">
$ ls
folder folder2
</pre></div>
<p>Booh….</p>
<p>In order to handle most webdav issues I use a <em>framework</em> in zsh. It handle almost all except the correct renaming of folder. Working on it… Anyway here is the code I use.</p>
<div><div class="code"><div class="file"><a href="/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/code/webdav-framework"> &#x27A5; webdav-framework </a></div><div class="withfile">
<pre class="twilight">
<span class="Comment"><span class="Comment">#</span>!/usr/bin/env zsh</span>
function samelineprint {
print -n -P -- <span class="String"><span class="String">&quot;</span>\r<span class="StringVariable"><span class="StringVariable">$</span>*</span><span class="String">&quot;</span></span>
}
<span class="Comment"><span class="Comment">#</span> avec 1 essai par seconde: 300 = 5 minutes</span>
maxessais=300
<span class="Comment"><span class="Comment">#</span> try to create a directory until success</span>
function trymkdir {
target=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span>
print -- mkdir -p <span class="Variable"><span class="Variable">$</span>target</span>
local essai=1
<span class="Keyword">while</span> <span class="Keyword">!</span> mkdir -p <span class="Variable"><span class="Variable">$</span>target</span><span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>Echec: essai n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
print
}
<span class="Comment"><span class="Comment">#</span> try to copy until success</span>
function trycp {
element=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span>
target=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>2</span><span class="String">&quot;</span></span>
<span class="Keyword">if</span> [[ <span class="Keyword">!</span> -d <span class="Variable"><span class="Variable">${</span>target:h<span class="Variable">}</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
trymkdir <span class="Variable"><span class="Variable">${</span>target:h<span class="Variable">}</span></span>
<span class="Keyword">fi</span>
local essai=1
print -- cp <span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>target</span>
<span class="Keyword">while</span> <span class="Keyword">!</span> <span class="Constant">\c</span>p <span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>target</span><span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>Echec: essai n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
print
}
<span class="Comment"><span class="Comment">#</span> try to remove until success</span>
function tryrm {
target=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span>
local essai=1
local options=<span class="String"><span class="String">'</span><span class="String">'</span></span>
[[ -d <span class="Variable"><span class="Variable">$</span>target</span> ]] <span class="Keyword">&amp;&amp;</span> options=<span class="String"><span class="String">'</span>-rf<span class="String">'</span></span>
print -- rm <span class="Variable"><span class="Variable">$</span>options</span> <span class="Variable"><span class="Variable">$</span>target</span>
<span class="Keyword">while</span> <span class="Keyword">!</span> rm <span class="Variable"><span class="Variable">$</span>options</span> <span class="Variable"><span class="Variable">$</span>target</span><span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>Echec: essai n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
essai=1
<span class="Keyword">while</span> [[ -e <span class="Variable"><span class="Variable">$</span>element</span> ]]<span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>rm reussi mais fichier source non disparu n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
sleep 1
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
print
}
<span class="Comment"><span class="Comment">#</span> try to rename until success</span>
function tryrename {
element=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span>
target=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>2</span><span class="String">&quot;</span></span>
local essai=1
<span class="Keyword">while</span> [[ -e <span class="Variable"><span class="Variable">$</span>target</span> ]]<span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>Echec n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span> le fichier <span class="StringVariable"><span class="StringVariable">$</span>target</span> existe déjà<span class="String">&quot;</span></span>
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
sleep 1
<span class="Keyword">done</span>
print -- mv <span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>target</span>
<span class="Keyword">while</span> <span class="Keyword">!</span> mv <span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>target</span><span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>Echec: essai n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 4
<span class="Keyword">done</span>
essai=1
<span class="Keyword">while</span> [[ -e <span class="Variable"><span class="Variable">$</span>element</span> ]]<span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>mv reussi mais fichier source non disparu n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
sleep 1
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
print
}
<span class="Comment"><span class="Comment">#</span> try to move until success</span>
function trymv {
element=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span>
target=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>2</span><span class="String">&quot;</span></span>
local essai=1
print -- mv <span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>target</span>
<span class="Keyword">while</span> <span class="Keyword">!</span> mv <span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>target</span><span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>Echec: essai n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
essai=1
<span class="Keyword">while</span> [[ -e <span class="Variable"><span class="Variable">$</span>element</span> ]]<span class="Keyword">;</span> <span class="Keyword">do</span>
samelineprint <span class="String"><span class="String">&quot;</span>mv reussi mais fichier source non disparu n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span><span class="String">&quot;</span></span>
sleep 1
((essai++))
((essai<span class="Keyword">&gt;</span>maxessais)) <span class="Keyword">&amp;&amp;</span> exit 5
<span class="Keyword">done</span>
print
}
</pre>
</div></div></div>
<p>And here is the code on how I synchronize my website. There is a little cryptic code. It correspond a problem caused by the bluecloth filter which is a markdown program made in ruby. Each time my email is written it is transformed differently. This is why I remove this part from the content of each html file. Without it, all my files containing email are different at each regeneration of my website.</p>
<div><div class="code"><div class="file"><a href="/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/code/publish"> &#x27A5; publish </a></div><div class="withfile">
<pre class="twilight">
<span class="Comment"><span class="Comment">#</span>!/usr/bin/env zsh</span>
<span class="Comment"><span class="Comment">#</span> Script synchronisant le site sur me.com</span>
<span class="Comment"><span class="Comment">#</span> normalement, le site est indisponible le moins de temps possible</span>
<span class="Comment"><span class="Comment">#</span> le temps de deux renommages de répertoire</span>
<span class="Comment"><span class="Comment">#</span> get configuration</span>
<span class="Comment"><span class="Comment">#</span> mostly directories</span>
source <span class="Variable"><span class="Variable">$</span>0</span>:h/config
<span class="Comment"><span class="Comment">#</span> get trycp function (copy until success)</span>
source <span class="Variable"><span class="Variable">$</span>0</span>:h/webdav-framework
<span class="Keyword">if</span> [[ <span class="Variable"><span class="Variable">$</span>1</span> <span class="Keyword">==</span> <span class="String"><span class="String">'</span>-h<span class="String">'</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
print -- <span class="String"><span class="String">&quot;</span>usage&nbsp;: <span class="StringVariable"><span class="StringVariable">$</span>0</span>:h [-h|-s|-d]<span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span> -a sychronise aussi l'index<span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span> -h affiche l'aide<span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span> -d modification directe (pas de swap)<span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span> -s swappe simplement les répertoires<span class="String">&quot;</span></span>
<span class="Keyword">fi</span>
<span class="Comment"><span class="Comment">#</span> publication incrementale</span>
function incrementalPublish {
local ydestRep=<span class="Variable"><span class="Variable">$</span>destRep</span><span class="Variable"><span class="Variable">$</span>suffix</span>
localRef=<span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>srcRep</span>/map.yrf<span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span>Creation du fichier de references<span class="String">&quot;</span></span>
create-reference-file.sh <span class="Keyword">&gt;</span> <span class="Variable"><span class="Variable">$</span>localRef</span>
remoteRef=<span class="String"><span class="String">&quot;</span>/tmp/remoteSiteMapRef.<span class="StringVariable"><span class="StringVariable">$</span>$</span>.yrf<span class="String">&quot;</span></span>
<span class="Keyword">if</span> [[ <span class="Keyword">!</span> -e <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>ydestRep</span>/map.yrf<span class="String">&quot;</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
<span class="Comment"><span class="Comment">#</span> pas de fichier de reference sur la cible</span>
print -- <span class="String"><span class="String">&quot;</span>pas de fichier de reference sur la cible, passage en mode rsync<span class="String">&quot;</span></span>
rsyncPublish
swap
<span class="Keyword">else</span>
trycp <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>ydestRep</span>/map.yrf<span class="String">&quot;</span></span> <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>remoteRef</span><span class="String">&quot;</span></span>
typeset -U filesToUpdate
filesToUpdate=( <span class="String"><span class="String">$(</span>diff <span class="StringVariable"><span class="StringVariable">$</span>localRef</span> <span class="StringVariable"><span class="StringVariable">$</span>remoteRef</span> <span class="Keyword">|</span> awk <span class="String"><span class="String">'</span>/^[&lt;&gt;]/ {print $2}<span class="String">'</span></span> <span class="String">)</span></span> )
<span class="Keyword">if</span> ((<span class="Variable"><span class="Variable">${</span>#filesToUpdate<span class="Variable">}</span></span> == 1))<span class="Keyword">;</span> <span class="Keyword">then</span>
print -- <span class="String"><span class="String">&quot;</span>Seul le fichier <span class="StringVariable"><span class="StringVariable">${</span>filesToUpdate<span class="StringVariable">}</span></span> sera téléversé<span class="String">&quot;</span></span>
<span class="Keyword">elif</span> ((<span class="Variable"><span class="Variable">${</span>#filesToUpdate<span class="Variable">}</span></span><span class="Keyword">&lt;</span>10))<span class="Keyword">;</span> <span class="Keyword">then</span>
print -- <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">${</span>#filesToUpdate<span class="StringVariable">}</span></span> fichiers seront téléversés&nbsp;:<span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">${</span>filesToUpdate<span class="StringVariable">}</span></span><span class="String">&quot;</span></span>
<span class="Keyword">else</span>
print -- <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">${</span>#filesToUpdate<span class="StringVariable">}</span></span> fichiers seront téléversés<span class="String">&quot;</span></span>
<span class="Keyword">fi</span>
<span class="Comment"><span class="Comment">#</span> copy all file with some differences</span>
<span class="Comment"><span class="Comment">#</span> except the map in case of error</span>
<span class="Keyword">for</span> element <span class="Keyword">in</span> <span class="Variable"><span class="Variable">$</span>filesToUpdate</span><span class="Keyword">;</span> <span class="Keyword">do</span>
<span class="Keyword">if</span> [[ <span class="Variable"><span class="Variable">$</span>element</span> <span class="Keyword">==</span> <span class="String"><span class="String">&quot;</span>/map.yrf<span class="String">&quot;</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
<span class="Keyword">continue</span>
<span class="Keyword">fi</span>
<span class="Keyword">if</span> [[ -e <span class="Variable"><span class="Variable">$</span>srcRep</span><span class="Variable"><span class="Variable">$</span>element</span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
trycp <span class="Variable"><span class="Variable">$</span>srcRep</span><span class="Variable"><span class="Variable">$</span>element</span> <span class="Variable"><span class="Variable">$</span>ydestRep</span><span class="Variable"><span class="Variable">$</span>element</span>
<span class="Keyword">else</span>
tryrm <span class="Variable"><span class="Variable">$</span>ydestRep</span><span class="Variable"><span class="Variable">$</span>element</span>
<span class="Keyword">fi</span>
<span class="Keyword">done</span>
<span class="Comment"><span class="Comment">#</span> if all went fine, copy the map file</span>
trycp <span class="Variable"><span class="Variable">$</span>srcRep</span>/map.yrf <span class="Variable"><span class="Variable">$</span>ydestRep</span>/map.yrf
<span class="Comment"><span class="Comment">#</span> remove the temporary file</span>
<span class="Constant">\r</span>m <span class="Variable"><span class="Variable">$</span>remoteRef</span>
<span class="Comment"><span class="Comment">#</span> if we have used the tmp directory we swap</span>
<span class="Keyword">if</span> [[ <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>suffix</span><span class="String">&quot;</span></span> <span class="Keyword">!=</span> <span class="String"><span class="String">&quot;</span><span class="String">&quot;</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
swap
<span class="Keyword">fi</span>
<span class="Keyword">fi</span>
}
<span class="Comment"><span class="Comment">#</span> publication via rsync</span>
function rsyncPublish {
result=1
essai=1
<span class="Keyword">while</span> (( <span class="Variable"><span class="Variable">$</span>result</span> <span class="Keyword">&gt;</span> 0 ))<span class="Keyword">;</span> <span class="Keyword">do</span>
print -- rsync -arv <span class="Variable"><span class="Variable">$</span>srcRep</span>/ <span class="Variable"><span class="Variable">$</span>destRep</span>.tmp
<span class="Keyword">if</span> ((<span class="Keyword">!</span>testmode))<span class="Keyword">;</span> <span class="Keyword">then</span>
rsync -arv <span class="Variable"><span class="Variable">$</span>srcRep</span>/ <span class="Variable"><span class="Variable">$</span>destRep</span>.tmp
<span class="Keyword">fi</span>
result=<span class="Variable"><span class="Variable">$</span>?</span>
<span class="Keyword">if</span> (( <span class="Variable"><span class="Variable">$</span>result</span> <span class="Keyword">&gt;</span> 0 ))<span class="Keyword">;</span> <span class="Keyword">then</span>
print -P -- <span class="String"><span class="String">&quot;</span>%BEchec du rsync%b (essai n°<span class="StringVariable"><span class="StringVariable">$</span>essai</span>)<span class="String">&quot;</span></span> <span class="Keyword">&gt;&amp;2</span>
<span class="Keyword">fi</span>
((essai++))
<span class="Keyword">done</span>
}
<span class="Comment"><span class="Comment">#</span> swap</span>
function swap {
print -P -- <span class="String"><span class="String">&quot;</span>%B[Directory Swap (tmp &lt;=&gt; target)]%b<span class="String">&quot;</span></span>
[[ -e <span class="Variable"><span class="Variable">$</span>destRep</span>.old ]] <span class="Keyword">&amp;&amp;</span> tryrm <span class="Variable"><span class="Variable">$</span>destRep</span>.old
print -- <span class="String"><span class="String">&quot;</span> renommage du repertoire sandard vers le .old<span class="String">&quot;</span></span>
tryrename <span class="Variable"><span class="Variable">$</span>destRep</span> <span class="Variable"><span class="Variable">$</span>destRep</span>.old
print -- <span class="String"><span class="String">&quot;</span> renommage du repertoire tmp (nouveau) vers le standard<span class="String">&quot;</span></span>
print -P -- <span class="String"><span class="String">&quot;</span>%B[Site Indisponible]%b <span class="String"><span class="String">$(</span>date<span class="String">)</span></span><span class="String">&quot;</span></span>
tryrename <span class="Variable"><span class="Variable">$</span>destRep</span>.tmp <span class="Variable"><span class="Variable">$</span>destRep</span>
print -P -- <span class="String"><span class="String">&quot;</span>%B[Site Disponible]%b <span class="String"><span class="String">$(</span>date<span class="String">)</span></span><span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span> renommage du repertoire old vers le tmp<span class="String">&quot;</span></span>
tryrename <span class="Variable"><span class="Variable">$</span>destRep</span>.old <span class="Variable"><span class="Variable">$</span>destRep</span>.tmp
print -P -- <span class="String"><span class="String">&quot;</span> publication terminée<span class="String">&quot;</span></span>
}
print -- <span class="String"><span class="String">&quot;</span>Root = <span class="StringVariable"><span class="StringVariable">$</span>webroot</span><span class="String">&quot;</span></span>
print -- <span class="String"><span class="String">&quot;</span>Dest = <span class="StringVariable"><span class="StringVariable">$</span>destRep</span><span class="String">&quot;</span></span>
<span class="Keyword">if</span> [[ <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span> = <span class="String"><span class="String">&quot;</span>-s<span class="String">&quot;</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
swap
<span class="Keyword">else</span>
<span class="Keyword">if</span> [[ <span class="String"><span class="String">&quot;</span><span class="StringVariable"><span class="StringVariable">$</span>1</span><span class="String">&quot;</span></span> = <span class="String"><span class="String">&quot;</span>-d<span class="String">&quot;</span></span> ]]<span class="Keyword">;</span> <span class="Keyword">then</span>
suffix=<span class="String"><span class="String">&quot;</span><span class="String">&quot;</span></span>
<span class="Keyword">else</span>
suffix=<span class="String"><span class="String">&quot;</span>.tmp<span class="String">&quot;</span></span>
<span class="Keyword">fi</span>
print -P -- <span class="String"><span class="String">&quot;</span>%BSync%b[<span class="StringVariable"><span class="StringVariable">${</span>Root:t<span class="StringVariable">}</span></span> =&gt; <span class="StringVariable"><span class="StringVariable">${</span>destRep:t<span class="StringVariable">}</span></span><span class="StringVariable"><span class="StringVariable">$</span>suffix</span>]<span class="String">&quot;</span></span>
incrementalPublish
<span class="Keyword">fi</span>
</pre>
</div></div></div>
<p>This is my way to replace <code>rsync</code> with filesystem not handling it.
Hope it is usefull. Ill be happy to hear a way to handle the webdav rename folder problem. This is really annoying.</p>
</div>
<div id="choixrss">
<a id="rss" href="http://feeds.feedburner.com/yannespositocomen">
Subscribe
</a>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#comment').hide();
$('#clickcomment').click(showComments);
});
function showComments() {
$('#comment').show();
$('#clickcomment').fadeOut();
}
document.write('<div id="clickcomment">Comments</div>');
</script>
<div class="flush"></div>
<div class="corps" id="comment">
<h2 class="first">comments</h2>
<noscript>
You must enable javascript to comment.
</noscript>
<script type="text/javascript">
var idcomments_acct = 'a307f0044511ff1b5cfca573fc0a52e7';
var idcomments_post_id = '/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/en/blog/2009-10-28-custom-website-synchronisation-with-mobileme--2-/';
</script>
<span id="IDCommentsPostTitle" style="display:none"></span>
<script type='text/javascript' src='/Scratch/js/genericCommentWrapperV2.js'></script>
</div>
<div id="entete" class="corps_spaced">
<div id="liens">
<ul><li><a href="/Scratch/en/">Home</a></li>
<li><a href="/Scratch/en/blog/">Blog</a></li>
<li><a href="/Scratch/en/softwares/">Softwares</a></li>
<li><a href="/Scratch/en/about/">About</a></li></ul>
</div>
<div class="flush"></div>
<hr/>
<div id="next_before_articles">
<div id="previous_articles">
previous entries
<div class="previous_article">
<a href="/Scratch/en/blog/2009-10-Wait-to-hide-a-menu-in-jQuery/"><span class="nicer">«</span>&nbsp;Menu waiting to hide himself</a>
</div>
<div class="previous_article">
<a href="/Scratch/en/blog/2009-10-launch-daemon-from-command-line/"><span class="nicer">«</span>&nbsp;launch daemon from command line</a>
</div>
<div class="previous_article">
<a href="/Scratch/en/blog/2009-10-Focus-vs-Minimalism/"><span class="nicer">«</span>&nbsp;Focus &gt; Minimalism</a>
</div>
</div>
<div id="next_articles">
next entries
<div class="next_article">
<a href="/Scratch/en/blog/2009-10-30-How-to-handle-evil-IE/">How to handle evil IE&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/en/blog/2009-11-12-Git-for-n00b/">Git for n00b&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/en/blog/2009-12-06-iphone-call-filter/">iphone call filter&nbsp;<span class="nicer">»</span></a>
</div>
</div>
<div class="flush"></div>
</div>
</div>
<div id="bottom">
<div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Copyright ©, Yann Esposito</a>
</div>
<div id="lastmod">
Created: 10/28/2009
Modified: 04/20/2011
</div>
<div>
Entirely done with
<a href="http://www.vim.org">Vim</a>
and
<a href="http://nanoc.stoneship.org">nanoc</a>
</div>
<div>
<a href="/Scratch/en/validation/">Validation</a>
<a href="http://validator.w3.org/check?uri=referer"> [xhtml] </a>
.
<a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"> [css] </a>
.
<a href="http://validator.w3.org/feed/check.cgi?url=http%3A//yannesposito.com/Scratch/en/blog/feed/feed.xml">[rss]</a>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>