Merge "New Aptly scripts"
diff --git a/README.rst b/README.rst
index 300c3e5..6321347 100644
--- a/README.rst
+++ b/README.rst
@@ -66,6 +66,20 @@
               Version: GnuPG v1
               ...
 
+Define s3 endpoint:
+
+.. code-block:: yaml
+
+    parameters:
+      aptly:
+        server:
+          endpoint:
+            mys3endpoint:
+              engine: s3
+              awsAccessKeyID: xxxx
+              awsSecretAccessKey: xxxx
+              bucket: test
+
 Example pillar
 ==============
 
diff --git a/aptly/files/aptly.conf b/aptly/files/aptly.conf
index 71c206f..0f891f9 100644
--- a/aptly/files/aptly.conf
+++ b/aptly/files/aptly.conf
@@ -1,20 +1,47 @@
 {%- from "aptly/map.jinja" import server with context %}
 {
-  "rootDir": "{{ server.root_dir }}",
+  "rootDir": "{{ server.get('config', {}).root_dir|default(server.root_dir) }}",
   "downloadConcurrency": 4,
-  "architectures": [ "amd64" ],
-  "dependencyFollowSuggests": false,
-  "dependencyFollowRecommends": false,
-  "dependencyFollowAllVariants": false,
-  "dependencyFollowSource": false,
+  "architectures": [ {% for arch in server.architectures|default([]) %}"{{ arch }}"{% if not loop.last %},{% endif %}{% endfor %} ],
+  "dependencyFollowSuggests": {{ server.dependency.follow.suggests|lower }},
+  "dependencyFollowRecommends": {{ server.dependency.follow.recommends|lower }},
+  "dependencyFollowAllVariants": {{ server.dependency.follow.all_variants|lower }},
+  "dependencyFollowSource": {{ server.dependency.follow.source|lower }},
+  {%- if server.endpoint is defined %}
+  "S3PublishEndpoints": {
+    {%- for name, endpoint in server.endpoint.iteritems() %}
+    {%- if endpoint.engine == 's3' %}
+    "{{ name }}": {
+      {%- for key, value in endpoint.iteritems() %}
+      "{{ key }}": "{{ value }}"{% if not loop.last %},{% endif %}
+      {%- endfor %}
+    }
+    {%- endif %}
+    {%- endfor %}
+  },
+  "SwiftPublishEndpoints": {
+    {%- for name, endpoint in server.endpoint.iteritems() %}
+    {%- if endpoint.engine == 'swift' %}
+    "{{ name }}": {
+      {%- for key, value in endpoint.iteritems() %}
+      "{{ key }}": "{{ value }}"{% if not loop.last %},{% endif %}
+      {%- endfor %}
+    }
+    {%- endif %}
+    {%- endfor %}
+  },
+  {%- endif %}
   {%- if server.secure %}
-  "gpgDisableSign": false,
-  "gpgDisableVerify": false,
+  "gpgDisableSign": {{ server.gpg.disable_sign|default(False)|lower }},
+  "gpgDisableVerify": {{ server.gpg.disable_verify|default(False)|lower }},
   {%- else %}
-  "gpgDisableSign": true,
-  "gpgDisableVerify": true,
+  "gpgDisableSign": {{ server.gpg.disable_sign|default(True)|lower }},
+  "gpgDisableVerify": {{ server.gpg.disable_verify|default(True)|lower }},
   {%- endif %}
   "downloadSourcePackages": false,
   "ppaDistributorID": "ubuntu",
   "ppaCodename": ""
 }
+{#-
+vim: syntax=jinja
+-#}
diff --git a/aptly/map.jinja b/aptly/map.jinja
index e0d4853..5538f99 100644
--- a/aptly/map.jinja
+++ b/aptly/map.jinja
@@ -1,10 +1,18 @@
 
 {%- set server = salt['grains.filter_by']({
-  'Debian': {
+  'default': {
     'source': {
       'engine': 'pkg',
       'pkgs': ['aptly', 'bzip2', 'cron'],
     },
+    'dependency': {
+      'follow': {
+        'suggests': false,
+        'recommends': false,
+        'all_variants': false,
+        'source': false,
+      }
+    },
     'home_dir': '/var/lib/aptly',
     'root_dir': '/srv/aptly',
     'secure': True,