ADD script permettant la mise à jour de la BD et le rechargement des modules lors...
[euphorik.git] / modules / erl / euphorik_bd.erl
index bb092fa..187d6ea 100755 (executable)
@@ -29,6 +29,7 @@
    connect/0,
    connect/1,
    reset/0,
+   update/0,
    
    % users :
    nouveau_user/2,
@@ -46,6 +47,7 @@
    user_by_login_password/2,
    user_by_mess/1,
    toggle_ek_master/1,
+   css_from_user_cookie/1,
    
    % messages :
    nouveau_message/3,
@@ -166,6 +168,37 @@ reset() ->
    end).
 
 
+% Met à jour la bd, compare ?VERSION_BD avec la version dans la table 'proprietes'
+% et exécute les patchs nécessaires.
+update() ->
+   mnesia:transaction(
+      fun() ->
+         case mnesia:read({proprietes, version}) of
+            [#proprietes{nom = Version}] ->
+               update(Version);
+            _ ->
+               erreur
+         end
+      end
+   ).
+   
+
+% Mise à jour de la BD.
+% attention : il est nécessaire de se trouver dans une transaction.
+update(?VERSION_BD) -> fini;
+update(Version) ->
+   patch(Version),
+   update(Version + 1).
+   
+   
+% Applique une modification de la BD pour passer d'une version à la suivante.
+% 1 -> 2
+patch(1) ->
+   ok.
+% 2 -> 3
+%patch(2) ->
+
+
 % Ajoute un nouveau user et le renvoie
 nouveau_user(Pseudo, Cookie) ->
    F = fun() ->
@@ -366,7 +399,19 @@ toggle_ek_master(User_id) ->
       end
    )).
    
+
+% Renvoie une chaine représentant le cookie ou undefined si pas trouvé.
+css_from_user_cookie(Cookie) ->
+   case user_by_cookie(Cookie) of 
+      {ok, User} ->
+         User#user.css;
+      _ ->
+         undefined
+   end.
    
+
+
+
 user_by_login_password(Login, Password) ->
    resultat_transaction(mnesia:transaction(
       fun() ->