From aa7493063a58f67f13e48699ef279c814eab198a Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Sat, 28 Nov 2020 21:33:08 -0800 Subject: [PATCH] doc: convert weechat docs to commonmark This is essentially an automatic pandoc conversion of the weechat section in docbook as part of the larger CommonMark Docs project (https://github.com/NixOS/nixpkgs/projects/37) fixes #105264 Update doc/builders/packages/weechat.section.md Co-authored-by: Frederik Rietdijk Update doc/builders/packages/weechat.section.md Co-authored-by: Jan Tojnar --- doc/builders/packages/index.xml | 2 +- doc/builders/packages/weechat.section.md | 85 ++++++++++++++++++++++++ doc/builders/packages/weechat.xml | 85 ------------------------ 3 files changed, 86 insertions(+), 86 deletions(-) create mode 100644 doc/builders/packages/weechat.section.md delete mode 100644 doc/builders/packages/weechat.xml diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml index e20b0c689a80..f8be5aebcb51 100644 --- a/doc/builders/packages/index.xml +++ b/doc/builders/packages/index.xml @@ -20,6 +20,6 @@ - + diff --git a/doc/builders/packages/weechat.section.md b/doc/builders/packages/weechat.section.md new file mode 100644 index 000000000000..1d99b00e6323 --- /dev/null +++ b/doc/builders/packages/weechat.section.md @@ -0,0 +1,85 @@ +# Weechat {#sec-weechat} + +Weechat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration such as + +```nix +weechat.override {configure = {availablePlugins, ...}: { + plugins = with availablePlugins; [ python perl ]; + } +} +``` + +If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically. + +The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`. + +The python and perl plugins allows the addition of extra libraries. For instance, the `inotify.py` script in `weechat-scripts` requires D-Bus or libnotify, and the `fish.py` script requires `pycrypto`. To use these scripts, use the plugin's `withPackages` attribute: + +```nix +weechat.override { configure = {availablePlugins, ...}: { + plugins = with availablePlugins; [ + (python.withPackages (ps: with ps; [ pycrypto python-dbus ])) + ]; + }; +} +``` + +In order to also keep all default plugins installed, it is possible to use the following method: + +```nix +weechat.override { configure = { availablePlugins, ... }: { + plugins = builtins.attrValues (availablePlugins // { + python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]); + }); +}; } +``` + +WeeChat allows to set defaults on startup using the `--run-command`. The `configure` method can be used to pass commands to the program: + +```nix +weechat.override { + configure = { availablePlugins, ... }: { + init = '' + /set foo bar + /server add freenode chat.freenode.org + ''; + }; +} +``` + +Further values can be added to the list of commands when running `weechat --run-command "your-commands"`. + +Additionally it's possible to specify scripts to be loaded when starting `weechat`. These will be loaded before the commands from `init`: + +```nix +weechat.override { + configure = { availablePlugins, ... }: { + scripts = with pkgs.weechatScripts; [ + weechat-xmpp weechat-matrix-bridge wee-slack + ]; + init = '' + /set plugins.var.python.jabber.key "val" + '': + }; +} +``` + +In `nixpkgs` there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a `passthru.scripts` attribute which contains a list of all scripts inside the store path. Furthermore all scripts have to live in `$out/share`. An exemplary derivation looks like this: + +```nix +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "exemplary-weechat-script"; + src = fetchurl { + url = "https://scripts.tld/your-scripts.tar.gz"; + sha256 = "..."; + }; + passthru.scripts = [ "foo.py" "bar.lua" ]; + installPhase = '' + mkdir $out/share + cp foo.py $out/share + cp bar.lua $out/share + ''; +} +``` diff --git a/doc/builders/packages/weechat.xml b/doc/builders/packages/weechat.xml deleted file mode 100644 index a110d3f491c7..000000000000 --- a/doc/builders/packages/weechat.xml +++ /dev/null @@ -1,85 +0,0 @@ -
- Weechat - - - Weechat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration such as -weechat.override {configure = {availablePlugins, ...}: { - plugins = with availablePlugins; [ python perl ]; - } -} - If the configure function returns an attrset without the plugins attribute, availablePlugins will be used automatically. - - - - The plugins currently available are python, perl, ruby, guile, tcl and lua. - - - - The python and perl plugins allows the addition of extra libraries. For instance, the inotify.py script in weechat-scripts requires D-Bus or libnotify, and the fish.py script requires pycrypto. To use these scripts, use the plugin's withPackages attribute: -weechat.override { configure = {availablePlugins, ...}: { - plugins = with availablePlugins; [ - (python.withPackages (ps: with ps; [ pycrypto python-dbus ])) - ]; - }; -} - - - - - In order to also keep all default plugins installed, it is possible to use the following method: -weechat.override { configure = { availablePlugins, ... }: { - plugins = builtins.attrValues (availablePlugins // { - python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]); - }); -}; } - - - - - WeeChat allows to set defaults on startup using the --run-command. The configure method can be used to pass commands to the program: -weechat.override { - configure = { availablePlugins, ... }: { - init = '' - /set foo bar - /server add freenode chat.freenode.org - ''; - }; -} - Further values can be added to the list of commands when running weechat --run-command "your-commands". - - - - Additionally it's possible to specify scripts to be loaded when starting weechat. These will be loaded before the commands from init: -weechat.override { - configure = { availablePlugins, ... }: { - scripts = with pkgs.weechatScripts; [ - weechat-xmpp weechat-matrix-bridge wee-slack - ]; - init = '' - /set plugins.var.python.jabber.key "val" - '': - }; -} - - - - In nixpkgs there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a passthru.scripts attribute which contains a list of all scripts inside the store path. Furthermore all scripts have to live in $out/share. An exemplary derivation looks like this: -{ stdenv, fetchurl }: - -stdenv.mkDerivation { - name = "exemplary-weechat-script"; - src = fetchurl { - url = "https://scripts.tld/your-scripts.tar.gz"; - sha256 = "..."; - }; - passthru.scripts = [ "foo.py" "bar.lua" ]; - installPhase = '' - mkdir $out/share - cp foo.py $out/share - cp bar.lua $out/share - ''; -} - -