All Projects → nomi9995 → mtsl

nomi9995 / mtsl

Licence: MIT license
Tangible symlinks using cokidar (CLI)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to mtsl

docker-node-ci
The Docker image based on the official "node" image optimized for a CI environment
Stars: ✭ 18 (-10%)
Mutual labels:  watchman
Okbuck
OkBuck is a gradle plugin that lets developers utilize the Buck build system on a gradle project.
Stars: ✭ 1,513 (+7465%)
Mutual labels:  watchman
watchman-processor
Folder synchronization tool with a simple dashboard
Stars: ✭ 38 (+90%)
Mutual labels:  watchman
Login-ReactNative
Demo for creating Loign View
Stars: ✭ 13 (-35%)
Mutual labels:  watchman
react-native-surrender
CLI script that clears Watchman, removes node_modules and cleans cache using npm or yarn
Stars: ✭ 53 (+165%)
Mutual labels:  watchman
rorshach
A watchman for your directories. Rorshach allows you to listen to file system changes and run commands when these events occur.
Stars: ✭ 26 (+30%)
Mutual labels:  watchman
wsk
A straightforward and maintainable build system from the Bloomberg Graphics team.
Stars: ✭ 55 (+175%)
Mutual labels:  chokidar
node-less-chokidar
Watch and build CSS from LESS, compatible with Create React App
Stars: ✭ 21 (+5%)
Mutual labels:  chokidar
SharpLink
Create file system symbolic links from low privileged user accounts within PowerShell
Stars: ✭ 51 (+155%)
Mutual labels:  symlinks

Would you like to support me?


Make Tangible symlinks

Mtsl listens to changes in some folder (using Chokidar) and copies changed files into another folder.

Working

Actually, it is watcher CLI that copy files from source to destination

Why Mtsl not other packages?

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.

Install

npm install -g mtsl

Usage

# add the link to mtsl using `mtsl add -s <src> -d <dest>`
mtsl add -s ~/source-dir -d ~/User/destination-dir
output

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

OR

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>

Commands

add

mtsl add -s <src> -d <dest> (or 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 mtsl list. Links are saved to src/links.json in your mtsl install directory, meaning that your configuration is specific to that mtsl install.

remove

mtsl remove <linkId>

Removes a link.

remove all

mtsl removeall

Removes all link that made by using mtsl add.

start

mtsl start <linkId>

Starts mtsl.

It first copies all watched files from source to destination folder and then waits for new changes to happen.

startwithoutadd

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.

list

mtsl list

Lists all links.

Shows each link's id and source/destination folders.

Miscellaneous

Ignored 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:

{
    "ignore_dirs": [
        ".git",
        "node_modules"
    ]
}

Contributing

See the Contributing page.

Contributors

Thanks goes to these wonderful people (emoji key):

Numan
Numan

🚇 💻

License

Copyright (c) 2020 Nomi9995. Licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].