Added java project generator
This commit is contained in:
parent
6bf66c5916
commit
93cde0000d
|
@ -0,0 +1,127 @@
|
|||
#!/bin/bash
|
||||
|
||||
function createJavaData() {
|
||||
createMainClassData "${PACKAGE}";
|
||||
createControlClass "${PACKAGE}"
|
||||
createLoggerClassData "${PACKAGE}";
|
||||
createFXMLData "${PACKAGE}";
|
||||
}
|
||||
|
||||
function createControlClass() {
|
||||
|
||||
read -d '' CONTROLCLASS << EOF
|
||||
package com.${COMPANYNAME,,}.${PACKAGE,,};
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
|
||||
public class Controller {
|
||||
// Classes
|
||||
|
||||
// FXML Stuff
|
||||
|
||||
// Generics
|
||||
|
||||
|
||||
@FXML void initialize() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
EOF
|
||||
|
||||
echo "${CONTROLCLASS}" > "${PACKAGE}"/src/Controller.java
|
||||
}
|
||||
|
||||
function createMainClassData() {
|
||||
|
||||
read -d '' MAINCLASS << EOF
|
||||
package com.${COMPANYNAME,,}.${PACKAGE,,};
|
||||
|
||||
import com.${COMPANYNAME,,}.${PACKAGE,,}.utils.${PACKAGE}Logger;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.image.Image;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
public class ${PACKAGE} extends Application {
|
||||
// Classes
|
||||
private ${PACKAGE}Logger ${PACKAGE,,}Logger = ${PACKAGE}Logger.getInstance();
|
||||
|
||||
@Override public void start(Stage stage) {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(getClass().getResource(\"resources/${PACKAGE}.fxml\"));
|
||||
loader.setController(new Controller());
|
||||
loader.load();
|
||||
Scene scene = new Scene(loader.getRoot());
|
||||
scene.getStylesheets().add(\"/com/${COMPANYNAME}/${PACKAGE,,}/resources/stylesheet.css\");
|
||||
stage.setTitle(\"${PACKAGE}\");
|
||||
stage.setScene(scene);
|
||||
} catch (IOException startException) {
|
||||
String message = "\\\n${PACKAGE} Failed to launch...\\\n";
|
||||
System.out.println(message + startException);
|
||||
${PACKAGE,,}Logger.insertToLog(Level.SEVERE, message, startException);
|
||||
}
|
||||
// stage.getIcons().add(new Image(${PACKAGE}.class.getResourceAsStream(\"resources/${PACKAGE}.png\")));
|
||||
stage.setResizable(true);
|
||||
stage.show();
|
||||
}
|
||||
public static void main(String[] args) { launch(args); }
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "${MAINCLASS}" > "${PACKAGE}"/src/"${PACKAGE}".java
|
||||
}
|
||||
|
||||
|
||||
function createLoggerClassData() {
|
||||
|
||||
read -d '' LOGGERCLASS << EOF
|
||||
package com.${COMPANYNAME,,}.${PACKAGE,,}.utils;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.FileHandler;
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
public class ${PACKAGE}Logger {
|
||||
private static ${PACKAGE}Logger ${PACKAGE,,}Logger = new ${PACKAGE}Logger();
|
||||
private Logger logger = Logger.getLogger(${PACKAGE}Logger.class.getName());
|
||||
private boolean append = false;
|
||||
|
||||
// Instance passer
|
||||
public static ${PACKAGE}Logger getInstance() { return ${PACKAGE,,}Logger; }
|
||||
|
||||
// Init ${PACKAGE}Logger
|
||||
private ${PACKAGE}Logger() {
|
||||
try {
|
||||
FileHandler logFile = new FileHandler(\"${PACKAGE,,}_error.log\", append);
|
||||
logger.addHandler(logFile);
|
||||
} catch (IOException e) {
|
||||
insertToLog(Level.SEVERE, \"Can not access error log file...\", e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void insertToLog(Level severity, String message, Exception stackTrace) {
|
||||
logger.log(severity, message, stackTrace);
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "${LOGGERCLASS}" > "${PACKAGE}"/src/utils/"${PACKAGE}"Logger.java
|
||||
}
|
||||
|
||||
function createFXMLData() {
|
||||
read -d '' FXMLDATA << EOF
|
||||
|
||||
EOF
|
||||
echo "${FXMLDATA}" > "${PACKAGE}"/com/"${COMPANYNAME,,}"/"${PACKAGE,,}"/resources/"${PACKAGE}".fxml
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
|
||||
function createScriptData() {
|
||||
|
||||
read -d '' COMPILESCRIPT << EOF
|
||||
#!/bin/bash
|
||||
# -Xlint:unchecked
|
||||
function main() {
|
||||
javac *.java utils/*.java
|
||||
rm ../com/${COMPANYNAME,,}/${PACKAGE,,}/*.class
|
||||
rm ../com/${COMPANYNAME,,}/${PACKAGE,,}/utils/*.class
|
||||
|
||||
mv *.class ../com/${COMPANYNAME,,}/${PACKAGE,,}/
|
||||
mv utils/*.class ../com/${COMPANYNAME,,}/${PACKAGE,,}/utils/
|
||||
}
|
||||
main;
|
||||
EOF
|
||||
|
||||
read -d '' BUILDJARSCRIPT << EOF
|
||||
#!/bin/bash
|
||||
|
||||
function main() {
|
||||
jar cvfm ${PACKAGE}.jar manifest.txt com/${COMPANYNAME,,}/${PACKAGE,,}/*.class \
|
||||
com/${COMPANYNAME,,}/${PACKAGE,,}/utils/*.class \
|
||||
com/${COMPANYNAME,,}/${PACKAGE,,}/resources
|
||||
chmod +x ${PACKAGE}.jar
|
||||
mv ${PACKAGE}.jar bin/
|
||||
}
|
||||
main;
|
||||
EOF
|
||||
|
||||
echo "${COMPILESCRIPT}" > "${PACKAGE}"/src/unix_compile.sh
|
||||
echo "${BUILDJARSCRIPT}" > "${PACKAGE}"/buildJar.sh
|
||||
}
|
||||
|
||||
function createManifest() {
|
||||
|
||||
read -d '' MANIFESTDATA <<- EOF
|
||||
|
||||
Class-Path:
|
||||
SplashScreen-Image: com/${COMPANYNAME,,}/${PACKAGE,,}/resources/${PACKAGE}Splash.jpg
|
||||
Main-Class: com.${COMPANYNAME,,}.${PACKAGE,,}.${PACKAGE}
|
||||
|
||||
EOF
|
||||
|
||||
echo "${MANIFESTDATA}" > "${PACKAGE}"/manifest.txt
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
. insertScriptData.sh
|
||||
. insertBaseJavaData.sh
|
||||
|
||||
function main() {
|
||||
clear;
|
||||
echo "Name of package with proper Upercase convention...";
|
||||
read -p "-> : " PACKAGE;
|
||||
|
||||
echo -e "\n\nName of your company or group to setup Jar structure...\n" \
|
||||
"Usage Example: com/<companyORgroup>/${PACKAGE,,}" \
|
||||
"Note: This will be made lowercase."
|
||||
read -p "-> : " COMPANYNAME;
|
||||
|
||||
echo -e "\n\nMaking directories...";
|
||||
sleep 1;
|
||||
makeDirs "${PACKAGE}" "${COMPANYNAME}";
|
||||
echo "Making source files...";
|
||||
sleep 1;
|
||||
makeSrcFiles "${PACKAGE}" "${COMPANYNAME}";
|
||||
echo "Inserting script data to compile and build scripts...";
|
||||
sleep 1;
|
||||
createScriptData "${PACKAGE}" "${COMPANYNAME}";
|
||||
echo "Creating basic Manifest file for Jar building...";
|
||||
sleep 1;
|
||||
createManifest "${PACKAGE}" "${COMPANYNAME}";
|
||||
echo "Inserting basic Java data to ${PACKAGE} and its ${PACKAGE,,}Logger ...";
|
||||
sleep 1;
|
||||
createJavaData "${PACKAGE}" "${COMPANYNAME}";
|
||||
echo -e "\t\t\nFinished!\n";
|
||||
openOrExit "${PACKAGE}";
|
||||
}
|
||||
|
||||
function makeDirs() {
|
||||
mkdir -p "${PACKAGE}"/bin/resources/ "${PACKAGE}"/src/ "${PACKAGE}"/src/utils/ \
|
||||
"${PACKAGE}"/com/"${COMPANYNAME,,}"/"${PACKAGE,,}"/resources \
|
||||
"${PACKAGE}"/com/"${COMPANYNAME,,}"/"${PACKAGE,,}"/utils
|
||||
}
|
||||
|
||||
function makeSrcFiles() {
|
||||
touch "${PACKAGE}"/com/"${COMPANYNAME,,}"/"${PACKAGE,,}"/resources/"${PACKAGE}".fxml \
|
||||
"${PACKAGE}"/com/"${COMPANYNAME,,}"/"${PACKAGE,,}"/resources/stylesheet.css \
|
||||
"${PACKAGE}"/src/unix_compile.sh "${PACKAGE}"/buildJar.sh "${PACKAGE}"/manifest.txt \
|
||||
"${PACKAGE}"/src/"${PACKAGE}".java "${PACKAGE}"/src/utils/"${PACKAGE}"Logger.java \
|
||||
"${PACKAGE}"/src/Controller.java
|
||||
|
||||
# Make scripts runnable
|
||||
chmod 744 "${PACKAGE}"/src/unix_compile.sh
|
||||
chmod 744 "${PACKAGE}"/buildJar.sh
|
||||
}
|
||||
|
||||
function openOrExit() {
|
||||
echo -e "Open ${PACKAGE}/src/Controller.java\n"
|
||||
read -p "-->(Yy/Nn): " ANS;
|
||||
case "${ANS,,}" in
|
||||
y ) atom "${PACKAGE}"/src/Controller.java & ;;
|
||||
n ) exit ;;
|
||||
* ) ;;
|
||||
esac
|
||||
}
|
||||
main;
|
Loading…
Reference in New Issue