Skip to content

jesperancinha/project-signer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Signer


Generic badge GitHub release GitHub License

CircleCI project-signer

Build status

Codacy Badge codebeat badge

Codacy Badge Coverage Status codecov

GitHub language count GitHub top language GitHub top language

Technologies used

Please check the TechStack.md file for details.

Description

This project serves the purpose of automatically signing all projects from the root

The idea is to use something like:

  • Short switches
java -jar project-signer.jar -t <template> <tag1>...<tagn> -d <root_path> -ne <no empty>
  • Long switches
java -jar project-signer.jar --template-location <template> <tag1>...<tagn> --root-directory <root_path> --no-empty <no empty>

Example:

-l "../project-signer-templates/licenses/APACHE2.template,../project-signer-templates/licenses/ISC.template,../project-signer-templates/licenses/MIT.template" -t "../project-signer-templates/Readme.md" -tr "../project-signer-templates/RedirectReadme.md" License "About me" "Achievements" -d ../../

Run with prod profile.

To summarize, this program will scan all your readme files and standardize name. You may want a generic signature in all your projects and this little runner will do just that!

This command line runner will complete several boiler plate tasks:

  • Creates all Readme.md files missing - Wherever there is a pom or a package.json file, there should be a Readme.md to explain the purpose of your project. Title will be calculated according to your architecture. The title string is to be extracted from the build files. If multiple build files are present, it will find the name of the project by prioritizing the name of the project in detriment of the artifact name. In order of priority it will look for a title according to the following priority list: Maven, Gradle, SBT and finally NPM.
  • All indicated paragraph which start on a certain tag will be removed - We consider a whole paragraph according to the '#' notation of the markdown.
  • Once all Readme.md files have been created or updated, we will finally add the template signature AS IS to the footer of all found cases.
  • If a Readme file has been generated and a template option (-l) is not null, the it will copy the template file literally to the same destination.
  • It will also make sure the all legacy License.txt files will be removed.
  • When running the signAll.sh script, the [yyyy] variable in all licenses will be replaced with the year of the first commit in that repo

All tags are case-sensitive, which means you do need to add extra tags in case you have issues with word casing. Once you finally run the above command, please make sure to double check the given signature before committing and pushing to your repos.

Check the LogFile to keep track of changes.

Stable releases

Check the updated ReleaseNotes.md file for details on each release.

The maven Release has nothing to do with the tags. Since this project is not being pushed to Sonatype, the maven version has not meaning.

Usage in an IDE

The most common form of using this plugin would be something like this as command line parameters:

-t "../project-signer-templates/Readme.md" License "About me" -d ../../

Remember to user profiles dev/prod. No difference at the moment between the different profiles.

Tools

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys <your GPG key>
gpg --list-keys
export GPG_TTY=$(tty)
mvn clean deploy -Prelease
mvn nexus-staging:release  -Prelease
<settings>
    <servers>
        <server>
            <id>ossrh</id>
            <username>your-jira-id</username>
            <password>your-jira-pwd</password>
        </server>
    </servers>
</settings>

My Android apps

Production deployment location:


References

About me

GitHub followers