I have made CLI for make Tangible symlinks.
Make Tangible symlinks
Mtsl listens to changes in some folder (using Chokidar) and copies changed files into another folder.
Actually, it is watcher CLI that copy files from source to destination
There are other tangible symlink packages available but every package has so many bugs. famous package is wml but that have many bugs. This package is working as required
Let's face it, sometimes symbolic links just aren't enough. Github has more than 80K issues with the words "support for symlinks" in them.
Mtsl is a CLI tool that works pretty much like
ln -s [src] [dest]. You first set up your links by using the
mtsl add -s [src] -d [dest] command and then run the mtsl service (
mtsl start <linkId>) to start listening. link index can be get from
mtsl list That's it!
Note that since Mtsl is based on Chokidar it does not support symlinks. lol.
npm install -g mtsl
# add the link to mtsl using `mtsl add -s <src> -d <dest>` mtsl add -s ~/source-dir -d ~/User/destination-dir
Added link: (0) /Users/username/source-dir -> /Users/username/User/destination-dir
# above command will give you link id what will use to start watching link that is added mtsl start 0
make start symlink without add link
# it is same as `mtsl start` but it starts to make symlink without adding the link mtsl startwithoutadd -s <src> -d <dest>
mtsl add -s <src> -d <dest>
mtsl add -s <src> -d <dest> -skip-prompt)
Adds a link.
mtsl will not start listening to changes until you start it by running
mtsl start <linkId>.
Each link is given an unique id, you can see all links and their ids by running
Links are saved to
src/links.json in your
mtsl install directory, meaning that
your configuration is specific to that
mtsl remove <linkId>
Removes a link.
Removes all link that made by using
mtsl start <linkId>
It first copies all watched files from source to destination folder and then waits for new changes to happen.
mtsl startwithoutadd -s <src> -d <dest>
Starts mtsl without add link.
it is same as
mtsl start but it starts to make symlink without adding the link.
Lists all links.
Shows each link's id and source/destination folders.
When adding a new link Mtsl will try to detect if your source folder is a git repository or an npm package, it will then offer to ignore the ".git" and "node_modules" folders for you.
If you want to add more folders to your ignored folders first create a file named
.mtslconfig.json in your source folder, this file should contain ignore directories for this folder which will not CRUD from source to destination.
In the following example we are ignoring the ".git" and "node_modules" folders:
See the Contributing page.