anishathalye / anishathalye/dotbot

Base directory with config relative linking

Open
#381 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
8k
Forks
320
PR merge metrics
No merged PRs in 30d

Description

I have the following setup:

- an arbitrary directory in which I want to run `dotbot --config ./path/to/config.yaml`
- a repository that contains the `config.yaml` below which can be anywhere
- a directory I want to link files from that repository to

I am not inside of the repository containing the config.yaml, and the files I want to link are relative to that config.yaml (same folder or subfolder).

Inside that config.yaml I do not know where I will be running the `dotbot` command.

The config is, for instance, this:

```
- link:
# files
.github/copilot-instructions.md: dotfiles/copilot/instructions-dotfiles.md
```

If I run

```bash
./dotbot/bin/dotbot --config-file ai/prompts/dotbot.yaml --base-directory .
```

It fails with a `non-existent target` error.

If I run the command without a base directory, it will link inside the repository.

I want to have a single file that I can link in multiple folders that I DO NOT know about in the config, into a local subdirectory based on where I run the `dotbot` command.

If I run it in `${HOME}/somedirectory` I want to end up with `${HOME}/somedirectory/.github/...`, if I run it in `${HOME}` I want to end up with `${HOME}/.github/...`.

I fail to do this without using absolute paths in the config file. The `--base-directory` option expects an absolute path in the YAML file. Adding `./` on the left side of the `link` config line does not help (same error).

Is it possible to do that properly with `dotbot` or am I trying to use `dotbot` for something it is not intended to be used? I would expect to have multiple user directories on a station, one dotbot-config repo, and then install it to those users' home directories at least (which I then could "abuse" for my use case).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.