Update to the new library 'json2'
[euphorik.git] / tools / update_server.erl
1 #!/usr/bin/env escript
2 % coding: utf-8
3
4 % Executé sur le serveur après la copie des fichiers lors de la mise en production.
5 % Recharge les modules de euphorik et met à jour la BD.
6 % TODO : construire le nom du noeud en fonction du nom de l'host
7
8 hote() ->
9 '@overnux'.
10
11 % le premier argument est le nom du noeud est peut valoir :
12 % - yaws : noeud de production
13 % - yaws_dev : noeud de pre-production
14 main([Nom_node]) when Nom_node =:= "yaws"; Nom_node =:= "yaws_dev" ->
15 Node = list_to_atom(Nom_node ++ atom_to_list(hote())),
16 net_kernel:start([flynux, shortnames]),
17 io:format("rechargement des modules..~n"),
18 rpc:call(Node, euphorik_daemon, reload_euphorik, []),
19 if Nom_node =:= "yaws_dev" -> copier_bd(Node);
20 true -> true
21 end,
22 io:format("mise à jour de la BD..~n"),
23 rpc:call(Node, euphorik_bd_admin, update, []);
24 main(_) ->
25 io:format("Usage : mise_en_prod.erl <node>"),
26 halt(1).
27
28 % Copie la bd du noeud de production
29 copier_bd(Node) ->
30 io:format("Copie de la BD de production vers le noeude pre-production~n"),
31 Fichier = "/tmp/backup_ek_tmp",
32 Fichier2 = "/tmp/backup_ek_tmp2",
33 rpc:call(yaws@overnux, mnesia, backup, [Fichier]),
34 rpc:call(Node, euphorik_bd_admin, change_node_name, [yaws@overnux, yaws_dev@overnux, Fichier, Fichier2]),
35 rpc:call(Node, mnesia, restore, [Fichier2, [{default_op, recreate_tables}]]),
36 rpc:call(yaws@overnux, file, delete, [Fichier]),
37 rpc:call(Node, file, delete, [Fichier2]).
38