parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Хорошо, выкладываю код

agb 14.04.2007 17:36 / 14.04.2007 17:46

1. Понимаю, что это как-то надо закрутить в класс.
2. И выложить в SVN
3. И еще много чего... писалось ночью на коленках, свою задуманную функцию выполняет :-)


PS: Кто знает продукт, который это уже умеет делать причем при условии, что я к настройкам хостинг-сервера не имею никаких, кроме
.htaccess, пожалуйста, подскажите!



/auto.p
@auto[]
#путь к клиенту svn
$svn_path[/../svn/svn]
#путь корня сайта, куда выкладывать документы
$target_dir[/home/cursor/public_html]
$repos_base_uri[http://OpenSVN.csie.org/cursor_web_site]
#gfhjkm и логин
$repos_pw[912]
$repos_un[anton]
#каталог на сайте, где лежит эта библиотека, лучше защитить через .htpasswd
$lib_root[/VersionControl]

@main[]
^head[]
<h1>SVN - ^greeting[]</h1>
<p><a href="${lib_root}/">Home</a><br>
<a href="${lib_root}/help">Help</a>
</p>
^body[]
^footer[]

@head[]
<html>
<head><title>SVN - ^greeting[]</title></head>
<body>


@footer[]
<hr>
  <b>Repositary:</b> $repos_base_uri<br>
  <b>Target Dir:</b> $target_dir<br>

</body>
</html>
/index.html
@greeting[]
Home

@body[]
^command_navigation[]


@command_navigation[] 
$help[^table::load[${lib_root}/cmd.cfg]] 
  <ul>
    ^help.menu{ 
      ^command_navigation_cell[] 
    }[ :: ]
  </ul>

@command_navigation_cell[] 
 ^if($help.implemented eq "*"){
  <li style="display:inline^;">
   <a href=${lib_root}/work/${help.command}.html>$help.command</a></li>
}{
  <li style="display:inline^;">$help.command</li>
}
/help/index.html
@greeting[]
Help

@body[]
^help_navigation[]
$out[^file::exec[$svn_path;;help;$form:command]]
<pre>
$out.text
</pre>


@help_navigation[] 
$help[^table::load[${lib_root}/cmd.cfg]] 
  <ul>
    <li style="display:inline;"><a href="?">..</a></li> ::
    ^help.menu{ 
      ^help_navigation_cell[] 
    }[ :: ]
  </ul>

@help_navigation_cell[] 
<li style="display:inline;"><a href="?command=$help.command">$help.command</a></li>
/work/checkout.html
@greeting[]
Checkout

@body[]
^if(def $form:go){
  $subpath[$form:subpath]

  <b>Repositary:</b> ${repos_base_uri}${subpath}<br>
  <b>Target Dir:</b> ${target_dir}${subpath}<br><br>

  $out[^file::exec[$svn_path;;checkout;--username=$repos_un;--password=$repos_pw;${repos_base_uri}${subpath};${target_dir}${subpath}]]

^if(def $out.text){
<u>Text output:</u>
<pre>
  $out.text
</pre>
}

^if(def $out.stderr){
<u>Error:</u>
<pre>
  $out.stderr
</pre>
}

}{

<form>
                             <br>
  Rev: <input type=text size=5 name=rev>&nbsp^;
  SubPath: <input type=text size=15 name=subpath><br>
  <br>
  <input type=submit name=go value=Checkout>
</form>
}
ну и такой же /work/update.html
только соответствующие места изменить.


и еще..
/cmd.cfg
id	command	implemented
1	add
2	blame
3	cat
4	checkout	*
5	cleanup
6	commit
7	copy
8	delete
9	diff
10	export
11	help
12	import
13	info
14	list
15	lock
16	log
17	merge
18	mkdir
19	move
20	propdel
21	propedit
22	propget
23	proplist
24	propset
25	resolved
26	revert
27	status
28	switch
29	unlock
30	update	*