From 93f725fcae8b5303d25f39c61bce10b8e664fce5 Mon Sep 17 00:00:00 2001 From: TudbuT Date: Wed, 13 Jul 2022 22:20:28 +0200 Subject: [PATCH] fix gradle script, add working jar task, add custom command support --- bin/main/de/tudbut/gimpshot/GIMPShot.class | Bin 1435 -> 2782 bytes build.gradle | 19 +++++++------- .../java/de/tudbut/gimpshot/GIMPShot.java | 24 ++++++++++++++++-- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/bin/main/de/tudbut/gimpshot/GIMPShot.class b/bin/main/de/tudbut/gimpshot/GIMPShot.class index 6511b81630142b64f4df3d78f878de322cfd14c3..1892cd78a55c69611e76d8ce6f227753c50112c6 100644 GIT binary patch literal 2782 zcmaJ@_gC9i7`-nTBpi{UOp=g2fB-H@+NO|>u$=&=m_kU}5@A1V5nFO(2}s*?r+e=` z(!G-oESbK3u?r{A+=YzMc$NP6pjzuN!>ONltQWM4L=-2DRUeXo*qH(#6=D^x1Je%~03>KQ6Qrd{Wa5hV}KQ z`U|dvZA&*|?ZUjjdoIFLwr(0}2`a;y+%DY=1Vf7}64o-T%PnZLcHrpPNYT=IhOGtU zpkZ^%a#A*rF7EMTBQ{B>C2%iSwrM8Pff4aMpkOn$kRR!Y#knCe$gsV>!Sz;{)00|^ z2RfXoDQ@v-P>k9oY-LdLuJ-5&E@3;vhJqt*h#iieh;qx1o!Bj5R|y~Cb7`9=73{%Y zA|=LcZp<*O&YN~@JrNktQtdM8X?6fXhMsGW`>%a(foD=0o*{o z5njmZ;!~QFpnwk77iHfSLi^GgFX$q*P@o4&oz5}mM=K5~xDhuoNHbc(;h`ypy=9CP zLwcfX)@~tEi;pa-LIw#(4aCwD1yWj4MogT%Rl#kzof4v@Qrw6#G?#-Yimil* zb^&ozK?gb+WZQHX8P?{ro{N3a(K;OVqYga^dPQX@QJx^0LPqzTPURJ3*jOxqkYlGD zn+|g==|>-qiy-?2rLH?9YM~U8y^KLBzg$E^7?yCSC+|5|Y(o7)X2FnxFh&?EXD!{P zLJWFH1z8SL4hphd61GP&0Tw&g-f&X*H>zMvgjE?ym}wI5I74ljV(v7JDV=i9a7w}5 zB5^e&E_ZfFv*Ui85NVo#CgC(iTd09y$FTJzS1^ePRT!P}W(4uY%J8O1>J;R%bX-P^ z-pvsKtt*%oM#b??Gnv$ksEhSll5}Pz0xPewc;TK591N4 z6^o}5T7-h^DpqZ0T(iRbtiz26FD}cH`LYf^Ch|aC;Q~3@B;!djoR#skcoQ)bcviu4 zc%FI&pX0)TCW2|G^OzJfjw}qO?*d43mI2mCTkXnHoVPr%$>I%iTn-Oi5TD(8YG5t9PO^ zG}sgDo#+bXe((*$zGCh@xFQPj21do1?-YEGA1I5-Gf|yVO?UQ58JEfL#S34? zPgEVQ(H1*mh-1Gf$cUm@NpT#VOq&VE=Au>!ATmX@r7pEc7-7?~B3$$+s`319M2jdb z?4a_mpdSy=le|F{JtZ0i=*{R|**FjRGJPzApPphFsKIi2D((h)*U+dME3lGwt)g$4 zz*b`o)(I%aX|0lG|IT7V{{rg97qD$Siyi7dwc!f(SKxQFW^r&HH>+(K9LeC0d2|gl zWzfBVzVW7c92?xP4m4*G8f(trt_7T+(v)A44UhZOsqlDZtuKSP zdPdmTpFuKeS4a6jQ^@SytWbvqtkvf~Nwyx9GeI80dd9nRpH3|<&3B;^=X z3U4)h^lqlGTd@{x6nqEPqX)GZ#wMJizme0}0!}1OV=EQ!HWI*gTqOqnp!I7c(!a1P zm)JvYy6`GqBU~T;#Orv2lHH7pcoT0?lG|wJZM;Ki9>#gRi}z?(wdmorOR#r=5Cl>YBr0R!ReC%cUGdIim+#eU5G^$_Bs{k1XwDxRTp_^=fbsd zahJx#N03dalK227CO&~r;o5iy*XAbYo|F8)&iNJnFsy(7^Yt6B#FKsfy)Z*01mljo z+wQ(-_43{Aj%_!+cBb8QbmAlphM1B+d=n?U@vOl#L4mPjH|(BWX|C?MJ&lxn=Z~+M zWIS|MFq$gAv|d>Sw^b;*4SO+N4Urf4k3yK6bN0+zhLR57@~Mfuxb zoiLd*nD^Xs{9f#x0VD+FMcB5+s zxF^tFTW+t|>Zs*X>5?E|b)2ps;&J8Y;4}F&G%bAcZK(E!kN63w<1Y*tFCP-Ghff`F zdOg?Y%pqnycR+e08_wki%+&IIW(QmfUkhLFv)t!)pS!hvMfRbqnk1y^aV0mxF-8fi xH%Wvk#xRMh%rS-)BJI&oI@n33pbTI$` diff --git a/build.gradle b/build.gradle index f76a648..d62bf0c 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,10 @@ plugins { id 'application' } +configurations { + fat +} + repositories { // Use Maven Central for resolving dependencies. mavenCentral() @@ -21,16 +25,13 @@ repositories { dependencies { // This dependency is used by the application. - implementation 'com.google.guava:guava:30.1.1-jre' - implementation("de.tudbut:tuddylib:gitlab-1.0.2") + implementation(fat("de.tudbut:tuddylib:gitlab-1.0.2")) } -application { - // Define the main class for the application. - mainClass = 'de.tudbut.gimpshot.GIMPShot' +mainClassName = 'de.tudbut.gimpshot.GIMPShot' + +jar { + from { configurations.fat.collect { it.isDirectory() ? it : zipTree(it) } } + manifest.attributes(['Main-Class':mainClassName]) } -tasks.named('test') { - // Use JUnit Platform for unit tests. - useJUnitPlatform() -} diff --git a/src/main/java/de/tudbut/gimpshot/GIMPShot.java b/src/main/java/de/tudbut/gimpshot/GIMPShot.java index 4cb1ffe..fda78fb 100644 --- a/src/main/java/de/tudbut/gimpshot/GIMPShot.java +++ b/src/main/java/de/tudbut/gimpshot/GIMPShot.java @@ -11,13 +11,33 @@ import javax.imageio.ImageIO; import tudbut.tools.Tools2; public class GIMPShot { + public static void main(String[] args) throws IOException, AWTException, InterruptedException { + // Screenshot immediately, dont wait for config. BufferedImage image = Tools2.screenshot(); - File f = new File("gimpshot-screenshot.png"); + File f = new File(System.getenv().getOrDefault("TMPDIR", "/tmp") + "/gs_screenshot.png"); f.deleteOnExit(); FileOutputStream os = new FileOutputStream(f); ImageIO.write(image, "png", os); os.close(); - Runtime.getRuntime().exec("gimp -ndfs gimpshot-screenshot.png".split(" ")).waitFor(); + + // Read config now + Config config = new Config(getConfigPath()); + Runtime.getRuntime().exec(new String[] { + "sh", + "-c", + config.getCommand() + .replace("$f", f.getAbsolutePath()) + .replace("$r", image.getWidth() + "x" + image.getHeight()) + .replace("$R", image.getWidth() + "," + image.getHeight()) + .replace("$w", String.valueOf(image.getWidth())) + .replace("$h", String.valueOf(image.getHeight())) + }).waitFor(); + } + + public static String getConfigPath() { + String cfg = System.getenv().getOrDefault("XDG_CONFIG_HOME", System.getProperty("user.home") + "/.config"); + new File(cfg, "gimpshot").mkdir(); + return new File(cfg + "/gimpshot", "config.tcn").getAbsolutePath(); } }