]> Untitled Git - lemmy.git/commitdiff
Format config/defaults.hjson before committing (#1860)
authorNutomic <me@nutomic.com>
Fri, 22 Oct 2021 17:29:47 +0000 (17:29 +0000)
committerGitHub <noreply@github.com>
Fri, 22 Oct 2021 17:29:47 +0000 (13:29 -0400)
.cargo-husky/hooks/pre-commit
.drone.yml
config/defaults.hjson
scripts/update_config_defaults.sh [new file with mode: 0755]

index 6b25f491cf571fdd160b7567e89b402cc0091d9f..1c2858d4ee7a55466b908f71acd829d41c340405 100755 (executable)
@@ -6,5 +6,5 @@ cargo +nightly fmt -- --check
 cargo +nightly clippy --workspace --tests --all-targets --all-features -- \
     -D warnings -D deprecated -D clippy::perf -D clippy::complexity -D clippy::dbg_macro
 
-cargo run -- --print-config-docs > config/defaults.hjson
+./scripts/update_config_defaults.sh
 git add config/defaults.hjson
index a4b08e5427fbedb04fb3fdac3370cb907524a40c..e96fee7cf6d3c172d939acec4032b03eaa617807 100644 (file)
@@ -38,17 +38,17 @@ steps:
       - sudo apt-get -y install --no-install-recommends postgresql-client
       - cargo test --workspace --no-fail-fast
 
-  - name: cargo build
+  - name: check defaults.hjson updated
     image: ekidd/rust-musl-builder:1.51.0
     commands:
-      - cargo build
-      - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
+      - ./scripts/update_config_defaults.sh config/defaults_current.hjson
+      - diff config/defaults.hjson config/defaults_current.hjson
 
-  - name: check defaults.hjson updated
+  - name: cargo build
     image: ekidd/rust-musl-builder:1.51.0
     commands:
-      - target/lemmy_server --print-config-docs > config/defaults_current.hjson
-      - diff config/defaults.hjson config/defaults_current.hjson
+      - cargo build
+      - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
 
   - name: run federation tests
     image: node:alpine
index 62e47e539d9c841576aae672ebb3860c74835e82..6907c36ff70421536fdd19774f0336e395eb5238 100644 (file)
 {
-  // settings related to the postgresql database
-  "database": {
-    // Username to connect to postgres
-    "user": "lemmy",
-    // Password to connect to postgres
-    "password": "password",
-    // Host where postgres is running
-    "host": "localhost",
-    // Port where postgres can be accessed
-    "port": 5432,
-    // Name of the postgres database for lemmy
-    "database": "lemmy",
-    // Maximum number of active sql connections
-    "pool_size": 5
-  },
-  // rate limits for various user actions, by user ip
-  "rate_limit": {
-    // Maximum number of messages created in interval
-    "message": 180,
-    // Interval length for message limit, in seconds
-    "message_per_second": 60,
-    // Maximum number of posts created in interval
-    "post": 6,
-    // Interval length for post limit, in seconds
-    "post_per_second": 600,
-    // Maximum number of registrations in interval
-    "register": 3,
-    // Interval length for registration limit, in seconds
-    "register_per_second": 3600,
-    // Maximum number of image uploads in interval
-    "image": 6,
-    // Interval length for image uploads, in seconds
-    "image_per_second": 3600
-  },
-  // Settings related to activitypub federation
-  "federation": {
-    // Whether to enable activitypub federation.
-    "enabled": false,
-    // Allows and blocks are described here:
-    // https://join-lemmy.org/docs/en/federation/administration.html///instance-allowlist-and-blocklist
-    // 
-    // list of instances with which federation is allowed
-    "allowed_instances": [
-      "instance1.tld",
-      "instance2.tld",
+  # settings related to the postgresql database
+  database: {
+    # Username to connect to postgres
+    user: "lemmy"
+    # Password to connect to postgres
+    password: "password"
+    # Host where postgres is running
+    host: "localhost"
+    # Port where postgres can be accessed
+    port: 5432
+    # Name of the postgres database for lemmy
+    database: "lemmy"
+    # Maximum number of active sql connections
+    pool_size: 5
+  }
+  # rate limits for various user actions, by user ip
+  rate_limit: {
+    # Maximum number of messages created in interval
+    message: 180
+    # Interval length for message limit, in seconds
+    message_per_second: 60
+    # Maximum number of posts created in interval
+    post: 6
+    # Interval length for post limit, in seconds
+    post_per_second: 600
+    # Maximum number of registrations in interval
+    register: 3
+    # Interval length for registration limit, in seconds
+    register_per_second: 3600
+    # Maximum number of image uploads in interval
+    image: 6
+    # Interval length for image uploads, in seconds
+    image_per_second: 3600
+  }
+  # Settings related to activitypub federation
+  federation: {
+    # Whether to enable activitypub federation.
+    enabled: false
+    # Allows and blocks are described here:
+    # https://join-lemmy.org/docs/en/federation/administration.html///instance-allowlist-and-blocklist
+    # 
+    # list of instances with which federation is allowed
+    allowed_instances: [
+      instance1.tld
+      instance2.tld
       /* ... */
-    ],
-    // Instances which we never federate anything with (but previously federated objects are unaffected)
-    "blocked_instances": [
-      "string",
+    ]
+    # Instances which we never federate anything with (but previously federated objects are unaffected)
+    blocked_instances: [
+      string
       /* ... */
-    ],
-    // If true, only federate with instances on the allowlist and block everything else. If false,
-    // use allowlist only for remote communities, and posts/comments in local communities
-    // (meaning remote communities will show content from arbitrary instances).
-    "strict_allowlist": true
-  },
-  "captcha": {
-    // Whether captcha is required for signup
-    "enabled": false,
-    // Can be easy, medium, or hard
-    "difficulty": "medium"
-  },
-  // Email sending configuration. All options except login/password are mandatory
-  "email": {
-    // Hostname and port of the smtp server
-    "smtp_server": "localhost:25",
-    // Login name for smtp server
-    "smtp_login": "string",
-    // Password to login to the smtp server
-    "smtp_password": "string",
-    // Address to send emails from, eg "noreply@your-instance.com"
-    "smtp_from_address": "noreply@example.com",
-    // Whether or not smtp connections should use tls
-    "use_tls": true
-  },
-  // Parameters for automatic configuration of new instance (only used at first start)
-  "setup": {
-    // Username for the admin user
-    "admin_username": "admin",
-    // Password for the admin user
-    "admin_password": "my_passwd",
-    // Name of the site (can be changed later)
-    "site_name": "My Lemmy Instance",
-    // Email for the admin user (optional, can be omitted and set later through the website)
-    "admin_email": "string",
-    "sidebar": "string",
-    "description": "string",
-    "icon": "string",
-    "banner": "string",
-    "enable_downvotes": true,
-    "open_registration": true,
-    "enable_nsfw": true,
-    "community_creation_admin_only": true
-  },
-  // the domain name of your instance (mandatory)
-  "hostname": "unset",
-  // Address where lemmy should listen for incoming requests
-  "bind": "0.0.0.0",
-  // Port where lemmy should listen for incoming requests
-  "port": 8536,
-  // Whether the site is available over TLS. Needs to be true for federation to work.
-  "tls_enabled": true,
-  // Address where pictrs is available (for image hosting)
-  "pictrs_url": "http://localhost:8080",
-  // Regex for slurs which are prohibited. Example: `(\bThis\b)|(\bis\b)|(\bsample\b)`
-  "additional_slurs": "string",
-  // Maximum length of local community and user names
-  "actor_name_max_length": 20
+    ]
+    # If true, only federate with instances on the allowlist and block everything else. If false
+    # use allowlist only for remote communities, and posts/comments in local communities
+    # (meaning remote communities will show content from arbitrary instances).
+    strict_allowlist: true
+  }
+  captcha: {
+    # Whether captcha is required for signup
+    enabled: false
+    # Can be easy, medium, or hard
+    difficulty: "medium"
+  }
+  # Email sending configuration. All options except login/password are mandatory
+  email: {
+    # Hostname and port of the smtp server
+    smtp_server: "localhost:25"
+    # Login name for smtp server
+    smtp_login: "string"
+    # Password to login to the smtp server
+    smtp_password: "string"
+    # Address to send emails from, eg noreply@your-instance.com
+    smtp_from_address: "noreply@example.com"
+    # Whether or not smtp connections should use tls
+    use_tls: true
+  }
+  # Parameters for automatic configuration of new instance (only used at first start)
+  setup: {
+    # Username for the admin user
+    admin_username: "admin"
+    # Password for the admin user
+    admin_password: "my_passwd"
+    # Name of the site (can be changed later)
+    site_name: "My Lemmy Instance"
+    # Email for the admin user (optional, can be omitted and set later through the website)
+    admin_email: "string"
+    sidebar: "string"
+    description: "string"
+    icon: "string"
+    banner: "string"
+    enable_downvotes: true
+    open_registration: true
+    enable_nsfw: true
+    community_creation_admin_only: true
+  }
+  # the domain name of your instance (mandatory)
+  hostname: "unset"
+  # Address where lemmy should listen for incoming requests
+  bind: "0.0.0.0"
+  # Port where lemmy should listen for incoming requests
+  port: 8536
+  # Whether the site is available over TLS. Needs to be true for federation to work.
+  tls_enabled: true
+  # Address where pictrs is available (for image hosting)
+  pictrs_url: "http:#localhost:8080"
+  # Regex for slurs which are prohibited. Example: `(\bThis\b)|(\bis\b)|(\bsample\b)`
+  additional_slurs: "string"
+  # Maximum length of local community and user names
+  actor_name_max_length: 20
 }
diff --git a/scripts/update_config_defaults.sh b/scripts/update_config_defaults.sh
new file mode 100755 (executable)
index 0000000..0aca716
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -e
+
+dest=${1-config/defaults.hjson}
+
+cargo run -- --print-config-docs > "$dest"
+# replace // comments with #
+sed -i "s/\/\//#/" "$dest"
+# remove trailing commas
+sed -i "s/,\$//" "$dest"
+# remove quotes around json keys
+sed -i "s/\"//" "$dest"
+sed -i "s/\"//" "$dest"