folders-intermingled

Description

TO BE DONE -- This requires a bit of time to explain...

Resources

Variables

Name Type Default Description

checkout_dest

string --

The (intermediate) checkout destination on the target host. Required

become

boolean False

Whether to use elevated privileges to intermingle.

checkout_fail_if_exists

boolean False

Whether to fail if the destination folder exists.

checkout_folder_group

string --

The group of the checkout folder.

checkout_folder_owner

string --

The owner of the checkout folder.

checkout_force

boolean False

Whether to force-overwrite files on the checkout phase.

checkout_src

string --

The checkout source (local, remote, archive, ...).

checkout_stage

boolean False

Whether to perform the checkout phase.

checkout_type

string auto

The checkout type.

fail_if_target_exists

boolean False

Whether to fail if the target folder exists.

intermingle_config

dict --

The intermingle config.

intermingle_folder_group

string --

The group of the checkout folder.

intermingle_folder_owner

string --

The owner of the checkout folder.

intermingle_src

string --

The source folder on the target.

intermingle_stage

boolean False

Whether to perform the intermingle phase.

intermingle_target

string --

The target folder that gets intermingled.

intermingle_type

string copy

The intermingle type.

Code

doc:
  short_help: Merge a target folder with another.
  help: |
    TO BE DONE -- This requires a bit of time to explain...
  references:
    '[freckfrackery.intermingle Ansible role': https://gitlab.com/freckfrackery/freckfrackery.intermingle

args:
  checkout_src:
    doc:
      short_help: The checkout source (local, remote, archive, ...).
    type: string
    required: false
    cli:
      metavar: PATH
  checkout_dest:
    doc:
      short_help: The (intermediate) checkout destination on the target host.
    type: string
    required: true
    cli:
      metavar: PATH
  intermingle_src:
    doc:
      short_help: The source folder on the target.
    type: string
    required: false
    cli:
      metavar: PATH
  intermingle_target:
    doc:
      short_help: The target folder that gets intermingled.
    type: string
    required: false
    cli:
      metavar: PATH
  checkout_stage:
    doc:
      short_help: Whether to perform the checkout phase.
    type: boolean
    required: false
    default: false
  checkout_type:
    doc:
      short_help: The checkout type.
    type: string
    required: false
    default: auto
    allowed:
    - auto
    - copy
    - rsync
    - git
    - unarchive
    cli:
      metavar: TYPE
      show_default: true
  checkout_force:
    doc:
      short_help: Whether to force-overwrite files on the checkout phase.
    type: boolean
    required: false
    default: false
  checkout_fail_if_exists:
    doc:
      short_help: Whether to fail if the destination folder exists.
    type: boolean
    required: false
    default: false
  fail_if_target_exists:
    doc:
      short_help: Whether to fail if the target folder exists.
    type: boolean
    required: false
    default: false
  become:
    doc:
      short_help: Whether to use elevated privileges to intermingle.
    type: boolean
    default: false
    required: false
  intermingle_stage:
    doc:
      short_help: Whether to perform the intermingle phase.
    type: boolean
    required: false
    default: false
  intermingle_type:
    doc:
      short_help: The intermingle type.
    type: string
    required: false
    default: copy
    allowed:
    - symlink
    - copy
    - rsync
    - stow
    - bind-mount
    cli:
      metavar: TYPE
      show_default: true
  intermingle_config:
    doc:
      short_help: The intermingle config.
    type: dict
    required: false
    cli:
      enabled: false
    schema:
      interminglings:
        type: dict
        keyschema:
          type: string
        valueschema:
          type: string
  checkout_folder_owner:
    doc:
      short_help: The owner of the checkout folder.
    type: string
    required: false
  checkout_folder_group:
    doc:
      short_help: The group of the checkout folder.
    type: string
    required: false
  intermingle_folder_owner:
    doc:
      short_help: The owner of the checkout folder.
    type: string
    required: false
  intermingle_folder_group:
    doc:
      short_help: The group of the checkout folder.
    type: string
    required: false

frecklets:

- frecklet:
    name: freckfrackery.intermingle
    type: ansible-role
    resources:
      ansible-role:
      - freckfrackery.intermingle
      - freckfrackery.install-pkg-mgrs
      - freckfrackery.install-pkgs
    properties:
      idempotent: true
      msg: intermingle folders
      elevated: '{{:: become ::}}'
    desc:
      references:
        "'freckfrackery.intermingle' Ansible role": https://gitlab.com/freckfrackery/freckfrackery.intermingle
  vars:
    intermingle_become: '{{:: become ::}}'
    intermingle_checkout_stage: '{{:: checkout_stage ::}}'
    intermingle_checkout_src: '{{:: checkout_src ::}}'
    intermingle_checkout_dest: '{{:: checkout_dest ::}}'
    intermingle_checkout_type: '{{:: checkout_type ::}}'
    intermingle_checkout_force: '{{:: checkout_force ::}}'
    intermingle_checkout_folder_owner: '{{:: checkout_folder_owner ::}}'
    intermingle_checkout_folder_group: '{{:: checkout_folder_group ::}}'
    intermingle_checkout_fail_if_exists: '{{:: checkout_fail_if_exists ::}}'
    intermingle_stage: '{{:: intermingle_stage ::}}'
    intermingle_src: '{{:: intermingle_src ::}}'
    intermingle_target: '{{:: intermingle_target ::}}'
    intermingle_type: '{{:: intermingle_type ::}}'
    intermingle_config: '{{:: intermingle_config ::}}'
    intermingle_folder_owner: '{{:: intermingle_folder_owner ::}}'
    intermingle_folder_group: '{{:: intermingle_folder_group ::}}'
    intermingle_fail_if_target_exists: '{{:: fail_if_target_exists ::}}'
frecklecute folders-intermingled --help

Usage: frecklecute folders-intermingled [OPTIONS]

  TO BE DONE -- This requires a bit of time to explain...

Options:
  --checkout-dest PATH            The (intermediate) checkout destination on
                                  the target host.  [required]
  --become / --no-become          Whether to use elevated privileges to
                                  intermingle.
  --checkout-fail-if-exists / --no-checkout-fail-if-exists
                                  Whether to fail if the destination folder
                                  exists.
  --checkout-folder-group CHECKOUT_FOLDER_GROUP
                                  The group of the checkout folder.
  --checkout-folder-owner CHECKOUT_FOLDER_OWNER
                                  The owner of the checkout folder.
  --checkout-force / --no-checkout-force
                                  Whether to force-overwrite files on the
                                  checkout phase.
  --checkout-src PATH             The checkout source (local, remote, archive,
                                  ...).
  --checkout-stage / --no-checkout-stage
                                  Whether to perform the checkout phase.
  --checkout-type TYPE            The checkout type.
  --fail-if-target-exists / --no-fail-if-target-exists
                                  Whether to fail if the target folder exists.
  --intermingle-folder-group INTERMINGLE_FOLDER_GROUP
                                  The group of the checkout folder.
  --intermingle-folder-owner INTERMINGLE_FOLDER_OWNER
                                  The owner of the checkout folder.
  --intermingle-src PATH          The source folder on the target.
  --intermingle-stage / --no-intermingle-stage
                                  Whether to perform the intermingle phase.
  --intermingle-target PATH       The target folder that gets intermingled.
  --intermingle-type TYPE         The intermingle type.
  --help                          Show this message and exit.
# -*- coding: utf-8 -*-


#
# module path: pycklets.folders_intermingled.FoldersIntermingled
#


from dataclasses import dataclass
from pyckles import AutoPycklet
from typing import *    # noqa

@dataclass
class FoldersIntermingled(AutoPycklet):
    """TO BE DONE -- This requires a bit of time to explain...

       Args:
         become: Whether to use elevated privileges to intermingle.
         checkout_dest: The (intermediate) checkout destination on the target host.
         checkout_fail_if_exists: Whether to fail if the destination folder exists.
         checkout_folder_group: The group of the checkout folder.
         checkout_folder_owner: The owner of the checkout folder.
         checkout_force: Whether to force-overwrite files on the checkout phase.
         checkout_src: The checkout source (local, remote, archive, ...).
         checkout_stage: Whether to perform the checkout phase.
         checkout_type: The checkout type.
         fail_if_target_exists: Whether to fail if the target folder exists.
         intermingle_config: The intermingle config.
         intermingle_folder_group: The group of the checkout folder.
         intermingle_folder_owner: The owner of the checkout folder.
         intermingle_src: The source folder on the target.
         intermingle_stage: Whether to perform the intermingle phase.
         intermingle_target: The target folder that gets intermingled.
         intermingle_type: The intermingle type.

    """

    FRECKLET_ID = "folders-intermingled"

    become: bool = None
    checkout_dest: str = None
    checkout_fail_if_exists: bool = None
    checkout_folder_group: str = None
    checkout_folder_owner: str = None
    checkout_force: bool = None
    checkout_src: str = None
    checkout_stage: bool = None
    checkout_type: str = None
    fail_if_target_exists: bool = None
    intermingle_config: Dict = None
    intermingle_folder_group: str = None
    intermingle_folder_owner: str = None
    intermingle_src: str = None
    intermingle_stage: bool = None
    intermingle_target: str = None
    intermingle_type: str = None


    def __post_init__(self):
        super(FoldersIntermingled, self).__init__(var_names=["become", "checkout_dest", "checkout_fail_if_exists", "checkout_folder_group", "checkout_folder_owner", "checkout_force", "checkout_src", "checkout_stage", "checkout_type", "fail_if_target_exists", "intermingle_config", "intermingle_folder_group", "intermingle_folder_owner", "intermingle_src", "intermingle_stage", "intermingle_target", "intermingle_type"])


frecklet_class = FoldersIntermingled
# -*- coding: utf-8 -*-


#
# module path: pycklets.folders_intermingled.FoldersIntermingled
#


from pyckles import AutoPycklet

class FoldersIntermingled(AutoPycklet):
    """TO BE DONE -- This requires a bit of time to explain...

       Args:
         become: Whether to use elevated privileges to intermingle.
         checkout_dest: The (intermediate) checkout destination on the target host.
         checkout_fail_if_exists: Whether to fail if the destination folder exists.
         checkout_folder_group: The group of the checkout folder.
         checkout_folder_owner: The owner of the checkout folder.
         checkout_force: Whether to force-overwrite files on the checkout phase.
         checkout_src: The checkout source (local, remote, archive, ...).
         checkout_stage: Whether to perform the checkout phase.
         checkout_type: The checkout type.
         fail_if_target_exists: Whether to fail if the target folder exists.
         intermingle_config: The intermingle config.
         intermingle_folder_group: The group of the checkout folder.
         intermingle_folder_owner: The owner of the checkout folder.
         intermingle_src: The source folder on the target.
         intermingle_stage: Whether to perform the intermingle phase.
         intermingle_target: The target folder that gets intermingled.
         intermingle_type: The intermingle type.

    """

    FRECKLET_ID = "folders-intermingled"

    def __init__(self, become=None, checkout_dest=None, checkout_fail_if_exists=None, checkout_folder_group=None, checkout_folder_owner=None, checkout_force=None, checkout_src=None, checkout_stage=None, checkout_type="auto", fail_if_target_exists=None, intermingle_config=None, intermingle_folder_group=None, intermingle_folder_owner=None, intermingle_src=None, intermingle_stage=None, intermingle_target=None, intermingle_type="copy"):

        super(FoldersIntermingled, self).__init__(var_names=["become", "checkout_dest", "checkout_fail_if_exists", "checkout_folder_group", "checkout_folder_owner", "checkout_force", "checkout_src", "checkout_stage", "checkout_type", "fail_if_target_exists", "intermingle_config", "intermingle_folder_group", "intermingle_folder_owner", "intermingle_src", "intermingle_stage", "intermingle_target", "intermingle_type"])
        self._become = become
        self._checkout_dest = checkout_dest
        self._checkout_fail_if_exists = checkout_fail_if_exists
        self._checkout_folder_group = checkout_folder_group
        self._checkout_folder_owner = checkout_folder_owner
        self._checkout_force = checkout_force
        self._checkout_src = checkout_src
        self._checkout_stage = checkout_stage
        self._checkout_type = checkout_type
        self._fail_if_target_exists = fail_if_target_exists
        self._intermingle_config = intermingle_config
        self._intermingle_folder_group = intermingle_folder_group
        self._intermingle_folder_owner = intermingle_folder_owner
        self._intermingle_src = intermingle_src
        self._intermingle_stage = intermingle_stage
        self._intermingle_target = intermingle_target
        self._intermingle_type = intermingle_type

    @property
    def become(self):
        return self._become

    @become.setter
    def become(self, become):
        self._become = become

    @property
    def checkout_dest(self):
        return self._checkout_dest

    @checkout_dest.setter
    def checkout_dest(self, checkout_dest):
        self._checkout_dest = checkout_dest

    @property
    def checkout_fail_if_exists(self):
        return self._checkout_fail_if_exists

    @checkout_fail_if_exists.setter
    def checkout_fail_if_exists(self, checkout_fail_if_exists):
        self._checkout_fail_if_exists = checkout_fail_if_exists

    @property
    def checkout_folder_group(self):
        return self._checkout_folder_group

    @checkout_folder_group.setter
    def checkout_folder_group(self, checkout_folder_group):
        self._checkout_folder_group = checkout_folder_group

    @property
    def checkout_folder_owner(self):
        return self._checkout_folder_owner

    @checkout_folder_owner.setter
    def checkout_folder_owner(self, checkout_folder_owner):
        self._checkout_folder_owner = checkout_folder_owner

    @property
    def checkout_force(self):
        return self._checkout_force

    @checkout_force.setter
    def checkout_force(self, checkout_force):
        self._checkout_force = checkout_force

    @property
    def checkout_src(self):
        return self._checkout_src

    @checkout_src.setter
    def checkout_src(self, checkout_src):
        self._checkout_src = checkout_src

    @property
    def checkout_stage(self):
        return self._checkout_stage

    @checkout_stage.setter
    def checkout_stage(self, checkout_stage):
        self._checkout_stage = checkout_stage

    @property
    def checkout_type(self):
        return self._checkout_type

    @checkout_type.setter
    def checkout_type(self, checkout_type):
        self._checkout_type = checkout_type

    @property
    def fail_if_target_exists(self):
        return self._fail_if_target_exists

    @fail_if_target_exists.setter
    def fail_if_target_exists(self, fail_if_target_exists):
        self._fail_if_target_exists = fail_if_target_exists

    @property
    def intermingle_config(self):
        return self._intermingle_config

    @intermingle_config.setter
    def intermingle_config(self, intermingle_config):
        self._intermingle_config = intermingle_config

    @property
    def intermingle_folder_group(self):
        return self._intermingle_folder_group

    @intermingle_folder_group.setter
    def intermingle_folder_group(self, intermingle_folder_group):
        self._intermingle_folder_group = intermingle_folder_group

    @property
    def intermingle_folder_owner(self):
        return self._intermingle_folder_owner

    @intermingle_folder_owner.setter
    def intermingle_folder_owner(self, intermingle_folder_owner):
        self._intermingle_folder_owner = intermingle_folder_owner

    @property
    def intermingle_src(self):
        return self._intermingle_src

    @intermingle_src.setter
    def intermingle_src(self, intermingle_src):
        self._intermingle_src = intermingle_src

    @property
    def intermingle_stage(self):
        return self._intermingle_stage

    @intermingle_stage.setter
    def intermingle_stage(self, intermingle_stage):
        self._intermingle_stage = intermingle_stage

    @property
    def intermingle_target(self):
        return self._intermingle_target

    @intermingle_target.setter
    def intermingle_target(self, intermingle_target):
        self._intermingle_target = intermingle_target

    @property
    def intermingle_type(self):
        return self._intermingle_type

    @intermingle_type.setter
    def intermingle_type(self, intermingle_type):
        self._intermingle_type = intermingle_type



frecklet_class = FoldersIntermingled