GithubHelp home page GithubHelp logo

alexcreasy / project-manipulator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from project-ncl/project-manipulator

0.0 1.0 0.0 153 KB

Tool to manipulate project definition files. Current focus is on NPM support, but other formats can be added in the future.

License: Apache License 2.0

Java 100.00%

project-manipulator's Introduction

project-manipulator

Project Manipulator is a tool used to manipulate project definition files. Current focus is on NPM support, but other formats can be added in the future. Various manipulations can be performed on a project and their execution can be controlled by provided arguments.

Usage

usage: ...
 -t,--type                The project type. Can be only NPM for now and is not mandatory.
                          It is not case-sensitive.
 -f,--file <arg>          Project definition file
 -r,--result <arg>        Json file to be generated at the end of manipulation containing
                          the results. Is not mandatory.
 -D <arg>                 Java properties
 -h,--help                Print help
 -l,--log <arg>           Log file to output logging to
    --log-context <arg>   Add log-context ID
 -d,--debug               Enable debug
 -c,--trace               Enable trace

e.g.

java -jar project-manipulator-cli.jar -f npm-project/package.json

Java Properties

You can specify java system properties in the CLI by using -D<prop>=<value>

Java Property Description
restURL Dependency Analysis REST URL (e.g http://da.url.com/da/rest/v-1). It is used and required when user wants to perform automatic version increment.
restConnectionTimeout Optional connection timeout to set for the underlying HTTP client library responsible for calling the REST endpoints. Defaults to 30 seconds.
restSocketTimeout Optional socket timeout to set for the underlying HTTP client library responsible for calling the REST endpoints. Defaults to 10 minutes.
repositoryGroup A repository group used by Dependency Analysis to read existing versions with the same base version and suffix. It is used and required when user wants to perform automatic version increment.
packageScope A package scope that should be added.
versioningStrategy Versioning strategy can be either HYPHENED or SEMVER. The former uses hyphens between the original version, requested suffix and auto-incremented number, e.g. "1.2.3-jboss-001". The latter auto-increments the patch number to first available number and does not request suffix. If defined, it will also append it and add a build number separated by a dot resulting in SemVer pre-release format, e.g. "1.2.0-rc.1". It is mandatory when requesting automatic version increment.
versionIncrementalSuffix The version suffix to append to version of current project. It is used when automatic version increment is performed. It is mandatory with HYPHENED versioning strategy and optional with SEMVER one.
versionIncrementalSuffixPadding With automatic version increment, it is possible to configure zero-padding for the incremented number in the suffix. This is used only with HYPHENED versioning strategy.
versionOverride Desired version used as the output of version manipulation overriding all the logic. If set, the manipulation only updates project version to this and does not do anything else (no communication with Dependency Analysis, no suffix computation etc).
versionSuffixOverride Desired version suffix, that will be appended to the current version. It overrides the logic computing the suffix number automatically.
manipulation.disable default: false, specify whether you want to disable the manipulation of the version or not
dependencyOverride.$package_name Desired version(s) to apply to the specified package(s), if listed inside the dependencies in package.json. Does not replace the values in lock files. Example: -DdependencyOverride.keycloak-admin-client=^0.12.0 -DdependencyOverride.async=1.5.2
devDependencyOverride.$package_name Desired version(s) to apply to the specified package(s), if listed inside the devDependencies in package.json. Does not replace the values in lock files. Example: -DdevDependencyOverride.keycloak-admin-client=^0.12.0

Notes

The project is inspired by and partially based on POM Manipulation Extension

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.