/** * Replace variables in license text * * @param licenseText License template text * @return License text with replaced variables */ protected String replaceVariables(String licenseText) { if (!Strings.isNullOrEmpty(getCopyrightName())) { licenseText = licenseText.replaceAll("\\[fullname\\]", getCopyrightName()); } if (!Strings.isNullOrEmpty(getCopyrightYear())) { licenseText = licenseText.replaceAll("\\[year\\]", getCopyrightYear()); } return licenseText; }
/** * @see me.seeber.gradle.plugin.AbstractProjectConfigPlugin#initialize() */ @Override public void initialize() { getProject().getPluginManager().apply(ProjectConfigPlugin.class); getProject().getPluginManager().apply(LicensePlugin.class); } }
/** * Download license */ @TaskAction public void updateLicense() { String url = Validate.notNull(getLicenseUrl(), "The license URL must be set"); File licenseFile = Validate.notNull(getLicenseFile(), "The license file must be set"); try { String licenseText = Validate.notNull(Resources.toString(URI.create(url).toURL(), Charsets.UTF_8)); licenseText = licenseText.replaceFirst("(?s)^.*\\R---\\R+", ""); licenseText = replaceVariables(licenseText); licenseText = licenseText.replaceAll("(?m)^[ \\t]+", ""); Files.write(licenseText, licenseFile, Charsets.UTF_8); } catch (IOException e) { Throwables.throwIfUnchecked(e); throw new RuntimeException(e); } }
/** * Create task to update license template file * * @param tasks Task container to create task * @param projectConfig Project configuration for general project data * @param licenseExtension License extension for license data * @param files Resolver for file names */ @Mutate public void createLicenseTemplateUpdateTask(ModelMap<Task> tasks, ProjectConfig projectConfig, LicenseExtension licenseExtension, FileOperations files) { tasks.create("licenseTemplateUpdate", UpdateLicenseTask.class, t -> { t.setDescription("Download configured license into license template file."); t.setGroup("license"); t.setLicenseFile(files.file("src/doc/templates/LICENSE.txt")); ConventionMapping parameters = t.getConventionMapping(); parameters.map("copyrightName", () -> projectConfig.getOrganization().getName()); parameters.map("copyrightYear", () -> getCopyrightYearTemplate(projectConfig)); parameters.map("licenseUrl", () -> projectConfig.getLicense().getSourceUrl()); }); }
/** * Create task to update license template file * * @param tasks Task container to create task * @param projectConfig Project configuration for general project data * @param licenseExtension License extension for license data * @param files Resolver for file names */ @Mutate public void createLicenseTemplateUpdateTask(ModelMap<Task> tasks, ProjectConfig projectConfig, LicenseExtension licenseExtension, FileOperations files) { tasks.create("licenseTemplateUpdate", UpdateLicenseTask.class, t -> { t.setDescription("Download configured license into license template file."); t.setGroup("license"); t.setLicenseFile(files.file("src/doc/templates/LICENSE.txt")); ConventionMapping parameters = t.getConventionMapping(); parameters.map("copyrightName", () -> projectConfig.getOrganization().getName()); parameters.map("copyrightYear", () -> getCopyrightYearTemplate(projectConfig)); parameters.map("licenseUrl", () -> projectConfig.getLicense().getSourceUrl()); }); }
/** * Download license */ @TaskAction public void updateLicense() { String url = Validate.notNull(getLicenseUrl(), "The license URL must be set"); File licenseFile = Validate.notNull(getLicenseFile(), "The license file must be set"); try { String licenseText = Validate.notNull(Resources.toString(URI.create(url).toURL(), Charsets.UTF_8)); licenseText = licenseText.replaceFirst("(?s)^.*\\R---\\R+", ""); licenseText = replaceVariables(licenseText); licenseText = licenseText.replaceAll("(?m)^[ \\t]+", ""); Files.write(licenseText, licenseFile, Charsets.UTF_8); } catch (IOException e) { Throwables.throwIfUnchecked(e); throw new RuntimeException(e); } }
/** * Replace variables in license text * * @param licenseText License template text * @return License text with replaced variables */ protected String replaceVariables(String licenseText) { if (!Strings.isNullOrEmpty(getCopyrightName())) { licenseText = licenseText.replaceAll("\\[fullname\\]", getCopyrightName()); } if (!Strings.isNullOrEmpty(getCopyrightYear())) { licenseText = licenseText.replaceAll("\\[year\\]", getCopyrightYear()); } return licenseText; }
/** * @see me.seeber.gradle.plugin.AbstractProjectConfigPlugin#initialize() */ @Override public void initialize() { getProject().getPluginManager().apply(ProjectConfigPlugin.class); getProject().getPluginManager().apply(LicensePlugin.class); } }