anchor.diff:  }
   
   /// Writes Nginx config files.
  -Future<String> writeNginxConf(Stream<Site> sites){
  -  return sites.map((site){
  +Future<String> writeNginxConf(Stream<Site> sites) {
  +  return sites.map((site) {
       return '''
   server {
     listen 80;
  
positive.code: }
  
  /// Sets up the environment variables and starts the server finally.
  Future<Site> startServer(Site site) async{
    var env = {
      'DARTUP': '1',
      'DARTUP_PORT': site.port.toString(),
  
negative.code: /// Save the config and start Nginx.
  ///
  /// Save the config file to /etc/nginx/conf.d/dartup.conf
  Future startNgnix(String conf) async {
    var file = new File('/etc/nginx/conf.d/dartup.conf');
    await file.writeAsString(conf);
    print('Written /etc/nginx/conf.d/dartup.conf');
  
    var result = await Process.run('nginx', [], runInShell: true);
    print('Ngnix started');
    print(result.stdout);
    print(result.stderr);
  }
  
  /// Add the user in Site.user
  Future<Site> addUser(Site site) async {
    var result = await Process.run('useradd', [site.user], runInShell: true);
    print('Created user: ${site.user}');
    print(result.stdout);
    print(result.stderr);
    return site;
  }
  
  /// Get only the tip of git repository. For now there is no need to get the hole
  /// thing.
  Future<Site> cloneGit(Site site) async {
    var exec = 'git clone --depth 1 ${site.gitUrl} project';
    var result = await Process.run('runuser', ['-l', site.user, '-c', exec],
        runInShell: true, workingDirectory: '/home/${site.user}');
    print('Git clone git: ${site.gitUrl}');
    print(result.stdout);
    print(result.stderr);
  