]> gitweb.factorcode.org Git - factor.git/blob - extra/webapps/mason/docs-update/docs-update.factor
io.files: exists? -> file-exists? and rename primitive.
[factor.git] / extra / webapps / mason / docs-update / docs-update.factor
1 ! Copyright (C) 2010 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors furnace.actions help.html http.server.responses
4 io.directories io.files io.launcher io.pathnames kernel
5 mason.config memoize namespaces sequences threads
6 webapps.mason.utils ;
7 IN: webapps.mason.docs-update
8
9 : docs-path ( -- path )
10     docs-directory get "docs.tar.gz" append-path ;
11
12 : update-docs ( -- )
13     home [
14         "newdocs" file-exists? [ "newdocs" delete-tree ] when
15
16         "newdocs" make-directory
17         "newdocs" [ { "tar" "xfz" } docs-path suffix try-process ] with-directory
18
19         "docs" file-exists? [ "docs" "docs.old" move-file ] when
20         "newdocs/docs" "docs" move-file
21
22         "newdocs" delete-directory
23         "docs.old" file-exists? [ "docs.old" delete-tree ] when
24
25         \ load-index reset-memoized
26     ] with-directory ;
27
28 : <docs-update-action> ( -- action )
29     <action>
30     [ validate-secret ] >>validate
31     [
32         [ update-docs ] "Documentation update" spawn drop
33         "OK" <text-content>
34     ] >>submit ;