Current:
  To create a new upstart-job (such as mysqld/ httpd) you have to change
  upstart-jobs/default.nix
    and write
  upstart-jobs/yourjob.nix


  example:
    # DHCP client.
    ++ optional ["networking" "useDHCP"]
      (import ../upstart-jobs/dhclient.nix {
        inherit (pkgs) nettools dhcp lib;
        interfaces = config.get ["networking" "interfaces"];
      })
  
my proposal:
  Goal: make a service behave more like plugins
  interface-design:
    cfg : pkgs : [(your job) (your job)]

  Benefits: Don't have to modify upstart-jobs/default.nix
  Thus if you want to run a second mysqld instances just copy the .nix file
  and add configuration settings to you nixos/configuration.nix file

  You can find a semi tested draft implementation here:
  http://rafb.net/p/bDRWJe46.html

  drawbacks:
    Doesn't solve all issues

What we really need:
  Think of running two mysqld instances and apache and phpMyAdmin
  (DB-Web Interface)

  So we want to add the web application phpMyAdmin to httpd and telling
  phpMyAdmin which port to use !

  How should the configuration look like?

  let mysql_conf = { port = xxx; }; in
  
  { services = {
        mysql = mysql_conf;
        httpd = {
            apps = { phpMyAdmin { mysql = mysql_conf, url_path = "/phpMyAdmin"}
        }
  }

  would be pretty simple and phpMyAdmin knows wether myslqd has been
  enabled and which port to use

additional: < niksnut> btw, maybe the services tree should be merged with the 
nixos tree
I agree. Then the svn repository would look the same way /etc/nixos.
does.

Marc W.
_______________________________________________
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev

Reply via email to