OCD Release 0.6.1

⚓ rust    📅 2025-04-26    👤 surdeus    👁️ 1      

surdeus

Info

This post is auto-generated from RSS feed The Rust Programming Language Forum - Latest topics. Source: OCD Release 0.6.1

Description

Hello world! This is the first published release version of the OCD project. OCD is a dotfile manager, which stands for "organize current dotfiles". This tool allows the user to manage their dotfile's through a cluster. A cluster is a group of repositories that can be deployed together. Upon deployment, the user can issue Git commands to interactively to manager their dotfiles within a given repository apart of their cluster.

See the provided README file in repository for more details and usage examples.

WARNING: OCD version 0.6.1 should be seen as a proof of concept. The project itself is not fully stable just yet.

Terminology

  • Cluster definition: Special configuration file that defines important settings regarding deployment and management of both root and nodes of a cluster. This configuration file is found at $XDG_CONFIG_HOME/ocd/cluster.toml.
  • Repository store: Area where Git repositories defined to be apart of cluster are stored. This directory is found at $XDG_DATA_HOME/ocd/.
  • Cluster: Grouping of repositories that can be deployed together. It is the union of both the cluster definition and repository store.
  • Root: Special repository that houses the cluster definition at all times. Only one root can exist per cluster, and it is always deployed, such that it cannot be undeployed without removing the entire cluster itself.
  • Node(s): Repositories apart of the cluster that house dotfiles to be deployed in a modular manner.

Features

  • Ability to initialize new root repository, or node repository through the init command. This command will create format preserving edits to cluster definition about the new entries to cluster, and initialize the corresponding repository in the repository store.
  • Ability to clone existing cluster to new machine through clone command. This command will clone the root repository, deploy it, and clone all nodes of the deployed cluster definition asynchronously to newly created repository store.
  • User can deploy node repositories to target directory alias through the deploy command. This command will also ensure that excluded files will not be deployed unless otherwise stated by the user. Any dependencies of a given node will also be deployed. If this command encounters a missing entry in repository store despite it being defined in the cluster definition, then it will attempt to clone it into repository store.
  • User can undeploy node repositories from target directory alias through the undeploy command. Similar to the deploy command, but does the opposite operation. Still ensures that node entries exist in repository store by cloning any that are missing, and will undeploy dependencies and excluded files of a target node.
  • User can remove node repositories through the rm command. This will remove the target node from both the cluster definition in a format preserving manner, and the repository store. This command can also be used to remove the root of a cluster. Upon removal of root, this command will undeploy the root itself, and all nodes in the cluster. Afterwards, the cluster definition and repository store will be fully deleted.
  • Ability to list all existing entries in cluster with added status information through ls command.
  • Ability to run Git commands on both root and nodes of cluster to mange dotfiles through a Git command shortcut.

Where to get OCD

1 post - 1 participant

Read full topic

🏷️ rust_feed