Na moje zdanie po kodowaniu ileś tam czasu w javie to nie czuję że tak jest.
Gdy napisałem te parę linijek nie czuję tej zajebistości a raczej mętlik. Zamiast wsparcia IDE to trzeba się domyślać jaką funkcję lub zajebistość można użyć. Pewnie przy napisaniu 1000 skryptu to już wchodzi w nawyk
Dziwactwo straszne dziwactwo
Wynalazki które szybko napisać ale cholera wie co robią
Extraktowanie zip-a aby sprawdzić zawartość pliku
W tym przypadku wykorzystane do sprawdzenia zmiennych w META-INF/context.xml
W moim wypadku w META-INF/context.xml są zapisane zmienne
<Context path="/ap-kolce-adm" ... <Resource... username="${ap-kolce-adm.auth.db.user}" ... password="${ap-kolce-adm.auth.db.pass}"Aby je wylistować można wykorzystać skrypt poniżej
Wywołanie przy założenie że groovy jest w path a ContextParser.groovy oraz ap-mzwi-adm.war są w bieżącym katalogu:
groovy ContextParser.groovy ap-mzwi-adm.warZawartość ContextParser.groovy
def file = args[0] println "file:" + file def zipFile = new java.util.zip.ZipFile(new File(file)) zipFile.entries().findAll { !it.directory }.each { def f = String.valueOf(it) if (f.startsWith("META-INF/context.xml")) { def str = zipFile.getInputStream(it).text def set1 = new TreeSet() try { str.eachLine { line -> def matcher = (line =~/\$\{([^\}]+)\}/) while (matcher.find()) { def key = matcher.group(1) set1.add(key) } } } catch (IOException e) { e.printStackTrace(); } set1.each { i1 -> println "$i1" } } }
Wypluty rezultat
ap-mzwi-adm.amqbroker.url ap-mzwi-adm.db.ip ap-mzwi-adm.db.pass ap-mzwi-adm.db.user ap-mzwi-adm.esb.http.url ap-mzwi-adm.ws-broker-server-sikch-auth.url as400.address_base as400.login_base as400.pass_base mgr.service.url
Brak komentarzy:
Prześlij komentarz