Support cloning into the mods folder
Currently the Clean Slate repository can only be cloned into an empty mods folder, not into one containing other git-provided mods. (Whose .git folder would conflict.)
Downloading the releases does not allow one to quickly change to a different tag or to "live on HEAD", both reasonable conducts for modders and for git users in general.
Anbennar for EU4 solves this issue amiably: The mod folder there is the root of the repository, the .mod file is placed into that folder.
To install, one clones the repository into mods/
This scales with an arbitrary number of mods and would be a desirable solution.
(Note that CK2Plus is another mod with git repository, so you immediately run into this issue yourself.)
The current workaround is brittle:
- clone into
mod/CleanSlate - symlink the .mod file to
mod/ - symlink everything inside
mod/CleanSlate/CleanSlateintomod/CleanSlate/
This will, of course, silently break whenever a new item is added into mod/CleanSlate/CleanSlate.
It also makes git status unsightly, as it sees all the symlinks as files (because they are):
CleanSlate]$ git status
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
CleanSlate/tutorial/cleanslate.jpg
CleanSlate/tutorial/common
CleanSlate/tutorial/decisions
CleanSlate/tutorial/dlc_metadata
CleanSlate/tutorial/events
CleanSlate/tutorial/gfx
CleanSlate/tutorial/history
CleanSlate/tutorial/interface
CleanSlate/tutorial/localisation
CleanSlate/tutorial/map
CleanSlate/tutorial/master_changelog.txt
CleanSlate/tutorial/music
cleanslate.jpg
common
decisions
dlc_metadata
events
gfx
history
interface
localisation
map
master_changelog.txt
music
tutorial
To clarify, is your proposed solution that we change the folder structure to add a mod folder between the .git files and the mod files?
No, it is to have the CleanSlate folder inside the repository be the new root folder.
Such that one would do:
-
mods] $ git clone https://github.com/ck2plus/CleanSlate.git- createsmods/CleanSlate -
mods] $ ln -s CleanSlate/CleanSlate.mod- createsmods/CleanSlate.mod, which will mirror any changes tomods/CleanSlate/CleanSlate.modbecause it is a link, not an independent file
and be done.
(Since Windows 10, symlinking also works in Windows out-of-the-box, the command would there be mklink CleanSlate\CleanSlate.mod, or possibly mklink CleanSlate\CleanSlate.mod CleanSlate.mod - I do not recall if the target parameter is optional, like it is for ln.)
Or to put it the other way around: I propose to move everything in the subfolder CleanSlate into the repository root.