Author: sandervanderburg
Date: Mon Dec 20 13:29:50 2010
New Revision: 25210
URL: https://svn.nixos.org/websvn/nix/?rev=25210&sc=1

Log:
Added subversion-repository type

Added:
   
disnix/disnix-activation-scripts/trunk/activation-scripts/subversion-repository.in
   
disnix/disnix-activation-scripts/trunk/tests/deployment/subversion-repository.nix
   disnix/disnix-activation-scripts/trunk/tests/services/subversion-repository/
   
disnix/disnix-activation-scripts/trunk/tests/services/subversion-repository/testrepos.dump
Modified:
   disnix/disnix-activation-scripts/trunk/activation-scripts/Makefile.am
   disnix/disnix-activation-scripts/trunk/configure.ac
   disnix/disnix-activation-scripts/trunk/release.nix

Modified: disnix/disnix-activation-scripts/trunk/activation-scripts/Makefile.am
==============================================================================
--- disnix/disnix-activation-scripts/trunk/activation-scripts/Makefile.am       
Mon Dec 20 12:18:37 2010        (r25209)
+++ disnix/disnix-activation-scripts/trunk/activation-scripts/Makefile.am       
Mon Dec 20 13:29:50 2010        (r25210)
@@ -24,9 +24,12 @@
     tomcat_webapplication = tomcat-webapplication
 endif
 
+if have_subversion
+    subversion_repository = subversion-repository
+endif
 
 # Build settings
 
-libexec_SCRIPTS = echo process nixos-configuration wrapper 
$(apache_webapplication) $(axis2_webservice) $(ejabberd_dump) $(mysql_database) 
$(tomcat_webapplication) $(postgresql_database)
+libexec_SCRIPTS = echo process nixos-configuration wrapper 
$(apache_webapplication) $(axis2_webservice) $(ejabberd_dump) $(mysql_database) 
$(tomcat_webapplication) $(postgresql_database) $(subversion_repository)
 
-EXTRA_DIST = apache-webapplication axis2-webservice.in echo ejabberd-dump.in 
mysql-database.in process nixos-configuration tomcat-webapplication.in wrapper 
postgresql-database.in
+EXTRA_DIST = apache-webapplication axis2-webservice.in echo ejabberd-dump.in 
mysql-database.in process nixos-configuration tomcat-webapplication.in wrapper 
postgresql-database.in subversion-repository.in

Added: 
disnix/disnix-activation-scripts/trunk/activation-scripts/subversion-repository.in
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
disnix/disnix-activation-scripts/trunk/activation-scripts/subversion-repository.in
  Mon Dec 20 13:29:50 2010        (r25210)
@@ -0,0 +1,24 @@
+#!/bin/bash -e
+
+case "$1" in
+    # Imports a Subversion dump
+    activate)
+       componentName=`basename $2`
+       repositoryName=${componentName:33}
+
+       if [ ! -e $svnBaseDir/$repositoryName ]
+       then
+           mkdir -p $svnBaseDir
+           
+           @svnadmin@ create $svnBaseDir/$repositoryName
+           cat $2/subversion-repositories/* | @svnadmin@ load 
$svnBaseDir/$repositoryName
+           
+           chgrp -R $svnGroup $svnBaseDir/$repositoryName
+           chmod -R g+w $svnBaseDir/$repositoryName
+           chmod g+s $svnBaseDir/$repositoryName/db
+       fi
+        ;;
+    deactivate)
+       # Does nothing, because we do not want to lose our SVN data
+       ;;
+esac

Modified: disnix/disnix-activation-scripts/trunk/configure.ac
==============================================================================
--- disnix/disnix-activation-scripts/trunk/configure.ac Mon Dec 20 12:18:37 
2010        (r25209)
+++ disnix/disnix-activation-scripts/trunk/configure.ac Mon Dec 20 13:29:50 
2010        (r25210)
@@ -14,6 +14,7 @@
 AC_ARG_WITH([mysql], AS_HELP_STRING([--without-mysql], [Ignore presence of 
MySQL and disable it]))
 AC_ARG_WITH([postgresql], AS_HELP_STRING([--without-postgresql], [Ignore 
presence of PostgreSQL and disable it]))
 AC_ARG_WITH([tomcat], AS_HELP_STRING([--with-tomcat], [Enable Apache Tomcat 
activation script and specifies location of the Apache Tomcat base directory]))
+AC_ARG_WITH([subversion], AS_HELP_STRING([--with-subversion], [Enable 
subversion repository activation script]))
 
 # Define environment variable options
 AC_ARG_WITH(CATALINA_HOME, [Location of the Apache Tomcat Catalina servlet 
container])
@@ -41,6 +42,9 @@
 AS_IF([test "x$with_postgresql" != "xno"],
       [AC_PATH_PROG(psql, psql)])
 
+AS_IF([test "x$with_subversion" != "xno"],
+      [AC_PATH_PROG(svnadmin, svnadmin)])
+
 AS_IF([test "x$with_tomcat" != "x" && test "x$with_tomcat" != "xno" || test 
"x$CATALINA_HOME" != "x"],
       [have_tomcat=yes],
       [have_tomcat=no])
@@ -52,6 +56,7 @@
 AM_CONDITIONAL(have_mysql, [test x$mysql != "x"])
 AM_CONDITIONAL(have_postgresql, [test x$psql != "x"])
 AM_CONDITIONAL(have_tomcat, [test x$have_tomcat != "xno"])
+AM_CONDITIONAL(have_subversion, [test x$svnadmin != "x"])
 
 # CATALINA_BASE setting
 
@@ -77,7 +82,10 @@
 
 AS_IF([test "x$have_tomcat" != "xno"],
       [tomcat_webapplication=activation-scripts/tomcat-webapplication])
-      
+
+AS_IF([test "x$svnadmin" != "x"],
+      [subversion_repository=activation-scripts/subversion-repository])
+
 AC_CONFIG_FILES([
 Makefile
 activation-scripts/Makefile
@@ -86,5 +94,6 @@
 $mysql_database
 $postgresql_database
 $tomcat_webapplication
+$subversion_repository
 ])
 AC_OUTPUT

Modified: disnix/disnix-activation-scripts/trunk/release.nix
==============================================================================
--- disnix/disnix-activation-scripts/trunk/release.nix  Mon Dec 20 12:18:37 
2010        (r25209)
+++ disnix/disnix-activation-scripts/trunk/release.nix  Mon Dec 20 13:29:50 
2010        (r25210)
@@ -27,6 +27,7 @@
       , enableMySQLDatabase ? false
       , enablePostgreSQLDatabase ? false
       , enableTomcatWebApplication ? false
+      , enableSubversionRepository ? false
       , catalinaBaseDir ? "/var/tomcat"
       }:
 
@@ -49,12 +50,14 @@
            ${if enableMySQLDatabase then "--with-mysql" else "--without-mysql"}
            ${if enablePostgreSQLDatabase then "--with-postgresql" else 
"--without-postgresql"}
            ${if enableTomcatWebApplication then 
"--with-tomcat=${catalinaBaseDir}" else "--without-tomcat"}
+           ${if enableSubversionRepository then "--with-subversion" else 
"--without-subversion"}
          '';
 
         buildInputs = []
                      ++ stdenv.lib.optional enableEjabberdDump ejabberd
                      ++ stdenv.lib.optional enableMySQLDatabase mysql
-                     ++ stdenv.lib.optional enablePostgreSQLDatabase 
postgresql;
+                     ++ stdenv.lib.optional enablePostgreSQLDatabase postgresql
+                     ++ stdenv.lib.optional enableSubversionRepository 
subversion;
       };
       
       tests = 
@@ -71,6 +74,7 @@
            enableMySQLDatabase = true;
            enablePostgreSQLDatabase = true;
            enableTomcatWebApplication = true;
+           enableSubversionRepository = true;
          };
          
          # Test services
@@ -106,6 +110,10 @@
          ejabberd_dump = import ./tests/deployment/ejabberd-dump.nix {
            inherit stdenv;
          };
+         
+         subversion_repository = import 
./tests/deployment/subversion-repository.nix {
+           inherit stdenv;
+         };
        in
        
        with import "${nixos}/lib/testing.nix" { inherit nixpkgs; system = 
"x86_64-linux"; services = null; };
@@ -240,6 +248,15 @@
                
$machine->mustSucceed("${disnix_activation_scripts}/libexec/disnix/activation-scripts/ejabberd-dump
 activate ${ejabberd_dump}");
                $machine->mustSucceed("curl --fail --user admin:admin 
http://localhost:5280/admin";);
                 
$machine->mustSucceed("${disnix_activation_scripts}/libexec/disnix/activation-scripts/ejabberd-dump
 deactivate ${ejabberd_dump}");
+               
+               # Test subversion activation script. We import a repository
+               # then we do a checkout and see whether it succeeds.
+               # This test should succeed.
+               
+               $machine->mustSucceed("svnBaseDir=/repos svnGroup=users 
${disnix_activation_scripts}/libexec/disnix/activation-scripts/subversion-repository
 activate ${subversion_repository}");
+               $machine->mustSucceed("${subversion}/bin/svn co 
file:///repos/testrepos");
+               $machine->mustSucceed("[ -e testrepos/index.php ]");
+               $machine->mustSucceed("svnBaseDir=/repos svnGroup=users 
${disnix_activation_scripts}/libexec/disnix/activation-scripts/subversion-repository
 deactivate ${subversion_repository}");
              '';
          };
        };

Added: 
disnix/disnix-activation-scripts/trunk/tests/deployment/subversion-repository.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
disnix/disnix-activation-scripts/trunk/tests/deployment/subversion-repository.nix
   Mon Dec 20 13:29:50 2010        (r25210)
@@ -0,0 +1,11 @@
+{stdenv}:
+
+stdenv.mkDerivation {
+  name = "testrepos";
+  src = ../services/subversion-repository;
+  buildCommand =
+  ''
+    ensureDir $out/subversion-repositories
+    cp $src/*.dump $out/subversion-repositories
+  '';
+}

Added: 
disnix/disnix-activation-scripts/trunk/tests/services/subversion-repository/testrepos.dump
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
disnix/disnix-activation-scripts/trunk/tests/services/subversion-repository/testrepos.dump
  Mon Dec 20 13:29:50 2010        (r25210)
@@ -0,0 +1,47 @@
+SVN-fs-dump-format-version: 2
+
+UUID: 56115d86-0c35-11e0-9b14-257dd1a9621a
+
+Revision-number: 0
+Prop-content-length: 56
+Content-length: 56
+
+K 8
+svn:date
+V 27
+2010-12-20T12:33:23.798885Z
+PROPS-END
+
+Revision-number: 1
+Prop-content-length: 117
+Content-length: 117
+
+K 7
+svn:log
+V 16
+Initial import
+
+
+K 10
+svn:author
+V 6
+sander
+K 8
+svn:date
+V 27
+2010-12-20T12:37:27.779937Z
+PROPS-END
+
+Node-path: index.php
+Node-kind: file
+Node-action: add
+Prop-content-length: 10
+Text-content-length: 32
+Text-content-md5: 18cd915a26a59c4f2bffeefe005ae6ac
+Text-content-sha1: fe0b47dfb08611e934d84776a580bba67557ddd0
+Content-length: 42
+
+PROPS-END
+<?php print("Hello World!"); ?>
+
+
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to