4.0.0 org.openhab docs 2.0.0-SNAPSHOT openHAB Documentation pom maven-clean-plugin ${basedir}/addons/actions/ ${basedir}/addons/bindings/ ${basedir}/addons/persistence/ ${basedir}/addons/voice/ ${basedir}/addons/uis/ ${basedir}/addons/io/ ${basedir}/addons/iconsets/ ${basedir}/concepts/ maven-resources-plugin copy-esh-docs process-resources copy-resources ${basedir}/concepts/ ${basedir}/_repos/smarthome/docs/documentation/concepts **/*.md **/*.png ${basedir}/_repos/smarthome/docs/documentation/development **/guidelines.md copy-oh1-binding-docs process-resources copy-resources ${basedir}/addons/bindings/oh1/ ${basedir}/_repos/openhab/bundles/binding **/README.md **/doc/** **/cfg/** copy-oh1-action-docs process-resources copy-resources ${basedir}/addons/actions/oh1/ ${basedir}/_repos/openhab/bundles/action **/README.md **/doc/** **/cfg/** copy-oh1-persistence-docs process-resources copy-resources ${basedir}/addons/persistence/oh1/ ${basedir}/_repos/openhab/bundles/persistence **/README.md **/doc/** **/cfg/** copy-oh2-binding-docs process-resources copy-resources ${basedir}/addons/bindings/oh2/ ${basedir}/_repos/openhab2-addons/addons/binding **/README.md **/doc/** **/cfg/** ${basedir}/_repos/openhab-bundles/bindings **/README.md **/doc/** **/cfg/** copy-esh-binding-docs process-resources copy-resources ${basedir}/addons/bindings/oh2/ ${basedir}/_repos/smarthome/extensions/binding **/README.md **/doc/** **/cfg/** copy-iconset-docs process-resources copy-resources ${basedir}/addons/iconsets ${basedir}/_repos/smarthome/extensions/ui/iconset **/README.md **/icons/** copy-ui-docs process-resources copy-resources ${basedir}/addons/uis ${basedir}/_repos/smarthome/extensions/ui **/README.md **/doc/** **/cfg/** **/iconset/** ${basedir}/_repos/openhab-bundles/uis **/README.md **/doc/** **/cfg/** copy-voice-docs process-resources copy-resources ${basedir}/addons/voice ${basedir}/_repos/smarthome/extensions/voice **/README.md **/doc/** **/cfg/** ${basedir}/_repos/openhab2-addons/addons/voice **/README.md **/doc/** **/cfg/** copy-oh1-io-docs process-resources copy-resources ${basedir}/bundles/io/oh1 ${basedir}/_repos/openhab/bundles/io **/README.md **/doc/** **/cfg/** copy-oh2-io-docs process-resources copy-resources ${basedir}/addons/io/oh2 ${basedir}/_repos/openhab2-addons/addons/io **/README.md **/doc/** **/cfg/** org.codehaus.groovy.maven gmaven-plugin rename-binding-files process-resources execute def bindingList = new File(project.basedir, '_data/bindings.csv') bindingList.write("source,id,label,description\n") def sources = ['oh1', 'oh2'] sources.each { source -> def bindings = new File(project.basedir, 'addons/bindings/'.concat(source)) bindings.eachFile { def name = it.name if(name.contains('binding')) { def bindingId = it.name.replace('org.eclipse.smarthome.binding.', '').replace('org.openhab.binding.', '') def simpleBindingNameDir = new File(bindings.path, bindingId) it.renameTo(simpleBindingNameDir) def readme = new File(simpleBindingNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simpleBindingNameDir.path, 'readme.md')) def label = readme.readLines().find{it.startsWith('#')}.replace('#', '').replace(' Binding', '').trim() def description = "" boolean firstHeadline = false for(def line : readme.readLines()) { if(line.startsWith('#')) { if(!firstHeadline) { firstHeadline = true } } else { if(firstHeadline && line.trim().size() > 0) { description = line.trim().replace('\"', '\'') break } } } if(!readme.text.startsWith('---')) { readme.write("---\nlayout: documentation\ntitle: ${label} - Bindings\nsource: external\n---\n<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->\n\n{% include base.html %}\n\n" + readme.text) } bindingList.append(source + ',' + bindingId + ',' + label + ',"' + description + '"\n') } } } } rename-action-files process-resources execute def actionList = new File(project.basedir, '_data/actions.csv') actionList.write("source,id,label,description\n") def sources = ['oh1'] sources.each { source -> def actions = new File(project.basedir, 'addons/actions/'.concat(source)) actions.eachFile { def name = it.name if(name.contains('action')) { def actionId = it.name.replace('org.openhab.action.', '') def simpleActionNameDir = new File(actions.path, actionId) it.renameTo(simpleActionNameDir) def readme = new File(simpleActionNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simpleActionNameDir.path, 'readme.md')) def label = readme.readLines().find{it.startsWith('#')}.replace('#', '').replace(' Actions', '').replace(' Action', '').trim() def description = "" boolean firstHeadline = false for(def line : readme.readLines()) { if(line.startsWith('#')) { if(!firstHeadline) { firstHeadline = true } } else { if(firstHeadline && line.trim().size() > 0) { description = line.trim().replace('\"', '\'') break } } } if(!readme.text.startsWith('---')) { readme.write("---\nlayout: documentation\ntitle: ${label} - Actions\nsource: external\n---\n<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->\n\n{% include base.html %}\n\n" + readme.text) } actionList.append(source + ',' + actionId + ',' + label + ',"' + description + '"\n') } } } } rename-persistence-files process-resources execute def persistenceList = new File(project.basedir, '_data/persistence.csv') persistenceList.write("source,id,label,description\n") def sources = ['oh1'] sources.each { source -> def persistence = new File(project.basedir, 'addons/persistence/'.concat(source)) persistence.eachFile { def name = it.name if(name.contains('persistence') && !name.endsWith('.test')) { def persistenceId = it.name.replace('org.openhab.persistence.', '') def simplePersistenceNameDir = new File(persistence.path, persistenceId) it.renameTo(simplePersistenceNameDir) def readme = new File(simplePersistenceNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simplePersistenceNameDir.path, 'readme.md')) def label = readme.readLines().find{it.startsWith('#')}.replace('#', '').replaceFirst('\\s*Persistence\\s*$', '').trim() def description = "" boolean firstHeadline = false for(def line : readme.readLines()) { if(line.startsWith('#')) { if(!firstHeadline) { firstHeadline = true } } else { if(firstHeadline && line.trim().size() > 0) { description = line.trim().replace('\"', '\'') break } } } if(!readme.text.startsWith('---')) { readme.write("---\nlayout: documentation\ntitle: ${label} - Persistence\nsource: external\n---\n<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->\n\n{% include base.html %}\n\n" + readme.text) } persistenceList.append(source + ',' + persistenceId + ',' + label + ',"' + description + '"\n') } } } } process-openhab1-addons process-resources execute def feature = new File(project.basedir, '_repos/openhab/features/openhab-addons/src/main/feature/feature.xml') def addonList = new File(project.basedir, '_data/oh1addons.csv') addonList.write("category,id,label\n") def root = new XmlParser().parse(feature) root.feature.each { def name = it['@name'].substring(8) def category = name.substring(0,name.indexOf('-')) def id = name.substring(name.indexOf('-') + 1) def label = it['@description'] if(category!='io' && category!='transport') addonList.append(category + ',' + id + ',' + label + '\n') } feature = new File(project.basedir, '_repos/openhab/features/openhab-addons-legacy/src/main/feature/feature.xml') addonList = new File(project.basedir, '_data/legacyaddons.csv') addonList.write("category,id,label\n") root = new XmlParser().parse(feature) root.feature.each { def name = it['@name'].substring(8) def category = name.substring(0,name.indexOf('-')) def id = name.substring(name.indexOf('-') + 1) def label = it['@description'] if(category!='io' && category!='transport') addonList.append(category + ',' + id + ',' + label + '\n') } rename-voice-files process-resources execute def voice = new File(project.basedir, 'addons/voice') def voiceList = new File(project.basedir, '_data/voice.csv') voiceList.write("id,label,description\n") voice.eachFile { def name = it.name if(name.contains('voice')) { def voiceId = it.name.replace('org.eclipse.smarthome.voice.', '').replace('org.openhab.voice.', '') def simpleVoiceNameDir = new File(voice.path, voiceId) it.renameTo(simpleVoiceNameDir) def readme = new File(simpleVoiceNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simpleVoiceNameDir.path, 'readme.md')) if(!readme.text.startsWith('---')) { readme.write("---\nlayout: documentation\n---\n\n{% include base.html %}\n\n" + readme.text) } def label = readme.readLines().find{it.startsWith('#')}.replace('#', '').trim() def description = "" boolean firstHeadline = false for(def line : readme.readLines()) { if(line.startsWith('#')) { if(!firstHeadline) { firstHeadline = true } } else { if(firstHeadline && line.trim().size() > 0) { description = line.trim().replace('\"', '\'') break } } } voiceList.append(voiceId + ',' + label + ',"' + description + '"\n') } } } rename-iconset-files process-resources execute def iconsets = new File(project.basedir, 'addons/iconsets') iconsets.eachFile { def name = it.name if(name.contains('iconset')) { def iconsetId = it.name.replace('org.eclipse.smarthome.ui.iconset.', '') def simpleIconsetNameDir = new File(iconsets.path, iconsetId) it.renameTo(simpleIconsetNameDir) def readme = new File(simpleIconsetNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simpleIconsetNameDir.path, 'readme.md')) } } } rename-ui-files process-resources execute def uis = new File(project.basedir, 'addons/uis') uis.eachFile { def name = it.name if((name.contains('smarthome.ui.') || name.contains('openhab.ui.')) && !name.contains('iconset')) { def uiId = it.name.replace('org.eclipse.smarthome.ui.', '').replace('org.openhab.ui.', '') def simpleUiNameDir = new File(uis.path, uiId) it.renameTo(simpleUiNameDir) def readme = new File(simpleUiNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simpleUiNameDir.path, 'readme.md')) if(!readme.text.startsWith('---')) { readme.write("---\nlayout: documentation\n---\n\n{% include base.html %}\n\n" + readme.text) } } } } rename-io-files process-resources execute def uis = new File(project.basedir, 'addons/io') uis.eachFile { def name = it.name if(name.contains('org.openhab.io.')) { def uiId = it.name.replace('org.openhab.io.', '') def simpleUiNameDir = new File(uis.path, uiId) it.renameTo(simpleUiNameDir) def readme = new File(simpleUiNameDir.path, 'README.md') if(readme.exists()) { println readme readme.renameTo(new File(simpleUiNameDir.path, 'readme.md')) if(!readme.text.startsWith('---')) { readme.write("---\nlayout: documentation\n---\n\n{% include base.html %}\n\n" + readme.text) } } } }