From cb24ebbfe26303c331be5b0b17673923ab7d4208 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 2 Apr 2017 18:12:00 -0700 Subject: [PATCH] Updated to Kobalt 1.0.45 --- .gitattributes | 5 + .gitignore | 10 +- .idea/modules/mobibot.iml | 111 ++++++++++++++++++----- kobalt/src/Build.kt | 97 ++++++++++++++++++++ kobalt/wrapper/kobalt-wrapper.jar | Bin 0 -> 11230 bytes kobalt/wrapper/kobalt-wrapper.properties | 1 + kobaltw | 2 + kobaltw.bat | 4 + 8 files changed, 205 insertions(+), 25 deletions(-) create mode 100644 .gitattributes create mode 100644 kobalt/src/Build.kt create mode 100644 kobalt/wrapper/kobalt-wrapper.jar create mode 100644 kobalt/wrapper/kobalt-wrapper.properties create mode 100644 kobaltw create mode 100644 kobaltw.bat diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6ec2ae2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# Set the default behavior, in case people don't have core.autocrlf set. +* text=auto + +# batch files are specific to windows and always crlf +*.bat eol=crlf diff --git a/.gitignore b/.gitignore index 065b527..6549aef 100644 --- a/.gitignore +++ b/.gitignore @@ -4,9 +4,10 @@ **/.idea/tasks.xml **/.idea/workspace.xml *.iws -.DS_Store .classpath +.DS_Store .gradle +.kobalt .nb-gradle .project .settings @@ -16,6 +17,7 @@ /dist /fetcher.properties /gen +/gradle.properties /local.properties /log4j.properties /logs @@ -23,8 +25,10 @@ /out /proguard-project.txt /project.properties +/target /test-output /weather.log CVS -Thumbs.db -ehthumbs.db \ No newline at end of file +ehthumbs.db +kobaltBuild +Thumbs.db \ No newline at end of file diff --git a/.idea/modules/mobibot.iml b/.idea/modules/mobibot.iml index c0dcd8b..7651f0b 100644 --- a/.idea/modules/mobibot.iml +++ b/.idea/modules/mobibot.iml @@ -1,6 +1,6 @@ - - + + @@ -16,29 +16,96 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kobalt/src/Build.kt b/kobalt/src/Build.kt new file mode 100644 index 0000000..b054d5e --- /dev/null +++ b/kobalt/src/Build.kt @@ -0,0 +1,97 @@ +import com.beust.kobalt.* +import com.beust.kobalt.plugin.apt.* +import com.beust.kobalt.plugin.packaging.* +import com.beust.kobalt.plugin.application.* +import com.beust.kobalt.plugin.java.* +import java.io.File +import java.io.FileInputStream +import java.util.* + +val bs = buildScript { + repos() +} + +val mainClassName = "net.thauvin.erik.mobibot.Mobibot" + +fun StringBuilder.prepend(s: String): StringBuilder { + if (this.isNotEmpty()) { + this.insert(0, s) + } + return this +} + +val p = project { + + name = "mobibot" + + fun versionFor(): String { + val propsFile = "version.properties" + val majorKey = "version.major" + val minorKey = "version.minor" + val patchKey = "version.patch" + val metaKey = "version.buildmeta" + val preKey = "version.prerelease" + + val p = Properties().apply { FileInputStream(propsFile).use { fis -> load(fis) } } + + return (p.getProperty(majorKey, "1") + "." + p.getProperty(minorKey, "0") + "." + p.getProperty(patchKey, "0") + + StringBuilder(p.getProperty(preKey, "")).prepend("-") + + StringBuilder(p.getProperty(metaKey, "")).prepend("+")) + } + + version = versionFor() + + val processorJar = "net.thauvin.erik:semver:" + + dependencies { + compile("log4j:log4j:jar:1.2.17") + + compile("pircbot:pircbot:1.5.0") + + compile("commons-codec:commons-codec:1.10") + compile("commons-logging:commons-logging:1.2") + compile("commons-net:commons-net:3.5") + compile("commons-cli:commons-cli:1.3.1") + compile("commons-httpclient:commons-httpclient:3.1") + + compile("oro:oro:2.0.8") + + compile("org.jsoup:jsoup:1.9.2") + compile("com.rometools:rome:1.6.1") + compile("org.slf4j:slf4j-log4j12:1.7.21") + compile("org.json:json:20160212") + compile("org.ostermiller:utils:1.07.00") + + compile("net.sourceforge.jweather:jweather:jar:0.3.0") + compile("net.objecthunter:exp4j:0.4.7") + + compile("org.twitter4j:twitter4j-core:4.0.4") + compile("net.sf.delicious-java:delicious:1.14") + + apt(processorJar) + compile(processorJar) + } + + apt { + outputDir = "/src/generated/java/" + } + + assemble { + jar { + name = "${project.name}.jar" + fatJar = true + manifest { + attributes("Main-Class", mainClassName) + } + } + } + + application { + mainClass = mainClassName + args("-v") + } + + install { + libDir = "deploy" + } +} diff --git a/kobalt/wrapper/kobalt-wrapper.jar b/kobalt/wrapper/kobalt-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..696ac55f0e460946fd8f657732a41a26126faf84 GIT binary patch literal 11230 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

8>{QBd*Y9RmX+=K(i)7u{HCp?^psCSk5Tq zwQeO!L8_G;y?eKXZ6#u%PK~otpMPxE6>KTqW55DY1*$P9osb*ApNfNs&g1T<;o+%Q zR!!3DSAFc5uLb9jzFHh&Y_8MGKoC|p5mi?!lrG#wBsqnnNU&Tg(y3#>t^?K{H^}_D z`H%JU{CO`5+3RN%odr92)5}v+RC*|_ghJ|jRy-SlA?j6t=+qu@=3$7%PYAk?o`^TT zdziE{-@Y0FD?nK~;g%E!uwhhRcv}qZ1j45+i_GlHG96^?--T?y?rfVc9vot$^#4xc z!e^BI%no`u&`o{7UH;}Y#uM(rq2kO_$nM3Lh)Kmbe5FcdqS1)W?wCFr&M>O9Ysp4J=PhFJ`fzg?qSyOg}KdLfsj%qTSAgH zVCYak^qqD@@@XUHQ584FxSoJ}Ii{j|i`e~b&Y18(zKW-xBF{O~VIBvx&)I2DN9R9d zICGc|`> zdtp`ewQ>{lN+eNw(7-zfR?)ViB{15FTF~C_dJ`TB0Hxg0*Gh#svUX6k%M#8HNcN{b zuh@CpQ0e>uI~PG?5hT6D3On{XCVmASqmlY0+{4!9F(D8{PDEP%F-^$acRp4~qMuI4 zMDU+~c?1ZnEQ#LMt~sNuhoe3pPx_YNF+@z!&LSub?2-0%?_TXXi-Xg2M1DS$L3p5mFsb+)VocY*_XHxgaM|oLrjXN4M{kO;C0cOzy zSkg)U^bpe34$-VjsGlmEpDf2wa@`Dj7_o|r6!D2h`a^{T0r5N_4-l)|$hUF2LbqYW zWn#nT>?r2?)q?_NxNW(qt{&}lHfFcJ-=9Qi_Eyb`CVAZrIZB^2GI(z13Ja@0bO#D_ zc7punN*lkJT@e8kKFMJ|+7Ut!aL)qwQKA#e?KS;&0bI*#Ao)7qopBeUq)ruyi9;T@ zE+IQPAC#QYNlx*@lo8AzrL3kEx~8J;Kvvbz;+o>Z;( z$LWSr=U{xP?G7(z_IFU0Dvt|-4jr2@q*bkp~ z2CA1_0T)JomM#e8Qj|J~`4Qz9_TH%aPfWlW7L|#sTMuhNFq%Q!XBS)v2q{uzTmTP0 z!#A%@9ix&aM7vVejgjP^(mw>m&Uo#g&7|Czq8JrP^pW8xm=#74Enpc(nR74OubcUJT^C!rCKrqx|fpM3C!M9=LhI!A>jM-jqUiyXHt7XtYOuSc9HMm!zEz)W;8K z>u0xJc3r+p$5lP!j=n9#Uo#)+o&U`39e`%kH+zFyT z#{tsD;;8`w86B|hX@=vC5fZVVpU2q3tgir*@2$v!R*Af^I|gOq&HnXbAl z{7@KW;$8(uP{5+FM}AS&3kDtG@1s;pSUyLFnDcn!tKHP4HHm+Izw`p$Ea3K&r7Kyn z3SY#F-}6#sJ3g9Hr3*QK73+-Bd zOo?l@-ah@|ZC4{#*!kG`BAT!NjxRF>F)$6c9V}8LV0lg8`y=?3-|aIW5w@B>eY-UO zk@tSSo(AlC5!XtI>q^bq0fAZkE;{qfqi0NkIm2BhVZOAED^^M*bvK0rXQF1l8I1t+ z8DQ0`-U4G^9IUaDFq}1P%?ks}kGmoNtC7Ba+2|U=E%9(Mjbi*s5`#AThW-%TREd`>tg4rDjz5_2YlzO^6#NJ~;{iAXn_)Z3^XoVWb#;ZOVU; zO%_LIhreRe)ymxE|B%rC)T7+w2W_jf7FK|o>y{smP39gO}1 zRR8bz@3`uJt@7`x<{w=8uZaA6`Ts>t|7*#AZ^l0y=U-6)_dk^U7tZ