Skip to content

Augments existing projects, allowing for co-existing versions

License

Notifications You must be signed in to change notification settings

ConjureLabs/aug

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aug

aug augments a project. It merges a base project with overrides.

$ aug --help

Usage: aug --src=<src-dir> --apply=<apply-dir> --dest=<dest-dir>

Options:
  --src, -s =<src-dir>          Base project directory being augmented
  --apply, -a =<apply-dir>      Directory that will augment the src directory
  --dest, -d =<dest-dir>        Path to where augmented version of project should copy to
  --dry-run                     Does not write to destination, and only logs what would have been written
  --help, -h                    List commands and options
  --version, -v                 Display installed version

Purpose

Imagine you have a web app that you want to open source, but you want to offer a hosted version as well. The hosted version may have some differences, like a different landing page, onboarding, and billing. You probably want the open source version to be simple.

This becomes difficult since it may mean maintaining a fork of the open source app. So, you end up with parallel apps that get out of sync.

aug attempts to fix this problem by allowing you to extend and override the open source app as needed. It takes in a source directory (the open source project), an 'apply' directory (the extensions and overrides), and destination (where a merged project will be copied to).

The 'apply' directory should only contain files you want to override with. For example, if you you only want to change the landing page, then the 'apply' directory should contain the landing page file. The path to this file needs to match the page in the src directory.

aug will walk each directory, and create symlinks to the corresponding files. 'apply' files are always preferred over src files.

.augignore

You can add an .augignore file to either project, in any directory. It follows the same logic as a .gitignore. You can specify files and folders that you want skipped during the merge process.

# ignore .git resources
.git

# MacOS
.DS_Store

About

Augments existing projects, allowing for co-existing versions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published