| Crates.io | je |
| lib.rs | je |
| version | 0.3.0 |
| created_at | 2020-09-20 16:56:44.278842+00 |
| updated_at | 2021-07-29 18:14:30.551997+00 |
| description | Allows to upload and download content to and from AEM instance |
| homepage | https://github.com/devzbysiu/je |
| repository | https://github.com/devzbysiu/je |
| max_upload_size | |
| id | 290855 |
| size | 363,836 |
About
Small utility for uploading/downloading content to/from running AEM instance.
It's intended to be used as an external tool for IntelliJ IDEA to make content synchronization easier.
je 0.3.0
Jcr Exchange - easy download and upload files to and from JCR
USAGE:
je [FLAGS] [OPTIONS] <SUBCOMMAND>
FLAGS:
-d, --debug If enabled, deployed to AEM packages are left intact (are not deleted) to allow investigation
-h, --help Prints help information
-V, --version Prints version information
-v, --verbose Enables logs: -v - enables INFO log level -vv - enables DEBUG log level
OPTIONS:
-p, --profile <profile> Profile selection
SUBCOMMANDS:
get Downloads content to local file system
get-bundle Downloads bundle (pack of crx paths) defined in config file
help Prints this message or the help of the given subcommand(s)
init Initializes configuration file
put Uploads content to AEM instance
reinit Rewrites the configuration file with newest version
Installation
je archive for your OSje executable into your PATH variablecargo install je
cargo install --force je
Configuration
Configuration file is not required. Without it, je will use default configuration.
However, you can still initialize config and change it. The default configuration is also the initial
one:
❯ je init
❯ cat .je
ignore_properties = []
[[profile]]
name = "author"
addr = "http://localhost:4502"
user = "admin"
pass = "admin"
Here is more complex configuration with description of its fields:
ignore_properties = [{ type = "contains", value = "jcr:createdBy" },
{ type = "regex", value = '.*=\[]' }]
[[profile]]
name = "author"
addr = "http://localhost:4502"
user = "admin"
pass = "admin"
[[profile]]
name = "publish"
addr = "http://localhost:4503"
user = "admin"
pass = "admin"
[[bundle]]
name = "configs"
files = ["/apps/my-app/config", "/config/my-app"]
[[bundle]]
name = "dam"
paths = ["/content/dam/my-app/thumbnails", "/content/dam/my-app/files"]
ignore_properties - tell je which properties of .content.xml should be removed after
downloading the content; currently, two types of ignoring mechanisms are available:
contains - executes line.contains(value) on each lineregex - executes regex.is_match(line) on each line, it uses Perl-style regular expressionsname - name of the profile, later it can be used with --profile option to specify which
instance is the target; if not specified, the first profile from the config is usedaddr - address of the instance, including port if domain is not availableuser - user used to authenticate to AEM instancepass - password used to authenticate to AEM instancename - name of the bundle, it can be later used with --bundle option to specify which
file pack to synchronizepaths - which file paths are part of the bundle:warning: If you used older version of
je, then you can transform the configuration file to the new form. Details below.
ignore_properties = ["jcr:created", "jcr:createdBy"]
# (...)
to
version = "0.3.0"
[[ignore_properties]]
type = "contains"
value = "jcr:created"
[[ignore_properties]]
type = "contains"
value = "jcr:createdBy"
# (...)
which is equivalent to:
version = "0.3.0"
ignore_properties = [{type = "contains", value = "jcr:created"},
{type = "contains", value = "jcr:createdBy"}]
# (...)
You can use any of those two formats. The difference is the result of <a href=https://github.com/alexcrichton/toml-rs/issues/265>this issue.
je commands:Settings -> Tools -> External Tools.+ sign.
Similarly add and configure je put command:

je in PATH, you can set full path in Program inputArguments input:
-vv - sets verbose level, -vv means DEBUG log level, -v means INFO log level; it's optional--profile - sets target profile; if not provided, first profile from config will be used-d - sets debug mode in which temporary packages uploaded to AEM won't be deleted
to allow validation during debugging; it's optionalput or get)$FilePath$ - IntelliJ variable which will be substituted during command execution, its absolute
path to a file on which command is executedWorking directory input:
$ProjectFileDir$ allows running je from the project rootje will try to read config file from the set working directorySettings -> Keymap -> External Tools.Right Click -> Add Keyboard Shortcut
License
This project is licensed under either of
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md for hints on how to contribute to je.