Liking cljdoc? Tell your friends :D

eyre.users


gather-scriptclj

(gather-script shell-type)

Returns the embedded collection script for shell-type. Falls back to the POSIX script when no specific script is available.

Returns the embedded collection script for `shell-type`. Falls back
to the POSIX script when no specific script is available.
sourceraw docstring

gather-usersclj

(gather-users {:keys [exec shell]})

Gathers identity and group membership facts for the user the executor runs as on the host reachable via exec.

Arguments

Takes a map with:

  • :exec - an executor function that runs a script string on the target host and returns {:exit int :out string :err string}.
  • :shell - the shell map returned by eyre.shell/gather-shell; its :type selects which embedded collection script is run. Shells without a specific script fall back to the POSIX script.

Returns

A map with:

  • :uid - {:id :name} for the executing user.
  • :gid - {:id :name} for the user's primary group, or nil on Windows.
  • :groups - vector of {:id :name} maps, one per group the user belongs to (including the primary group).
  • :group-ids - set of the :id values from :groups.
  • :group-names - set of the :name values from :groups.

On unix (data from id) ids are integers and names are strings:

{:uid {:id 1000 :name "crispin"}
 :gid {:id 1000 :name "crispin"}
 :groups [{:id 1000 :name "crispin"} {:id 998 :name "wheel"}]
 :group-ids #{1000 998}
 :group-names #{"crispin" "wheel"}}

On Windows (:powershell / :cmd-exe shells) there is no uid/gid concept; instead :uid and each :groups entry carry the account name and its SID string, and :gid is nil:

{:uid {:name "HOST\\user" :id "S-1-5-21-..."}
 :gid nil
 :groups [{:name "Administrators" :id "S-1-5-32-544"} ...]
 :group-ids #{"S-1-5-32-544" ...}
 :group-names #{"Administrators" ...}}
Gathers identity and group membership facts for the user the
executor runs as on the host reachable via `exec`.

## Arguments

Takes a map with:

- `:exec` - an executor function that runs a script string on the
  target host and returns `{:exit int :out string :err string}`.
- `:shell` - the shell map returned by `eyre.shell/gather-shell`;
  its `:type` selects which embedded collection script is run.
  Shells without a specific script fall back to the POSIX script.

## Returns

A map with:

- `:uid` - `{:id :name}` for the executing user.
- `:gid` - `{:id :name}` for the user's primary group, or `nil` on
  Windows.
- `:groups` - vector of `{:id :name}` maps, one per group the user
  belongs to (including the primary group).
- `:group-ids` - set of the `:id` values from `:groups`.
- `:group-names` - set of the `:name` values from `:groups`.

On unix (data from `id`) ids are integers and names are strings:

```clojure
{:uid {:id 1000 :name "crispin"}
 :gid {:id 1000 :name "crispin"}
 :groups [{:id 1000 :name "crispin"} {:id 998 :name "wheel"}]
 :group-ids #{1000 998}
 :group-names #{"crispin" "wheel"}}
```

On Windows (`:powershell` / `:cmd-exe` shells) there is no uid/gid
concept; instead `:uid` and each `:groups` entry carry the account
name and its SID string, and `:gid` is `nil`:

```clojure
{:uid {:name "HOST\\user" :id "S-1-5-21-..."}
 :gid nil
 :groups [{:name "Administrators" :id "S-1-5-32-544"} ...]
 :group-ids #{"S-1-5-32-544" ...}
 :group-names #{"Administrators" ...}}
```
sourceraw docstring

process-usersclj

(process-users shell-type sections)

Processes parsed users collection sections into a users facts map.

Processes parsed users collection sections into a users facts map.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close