aboutsummaryrefslogtreecommitdiff
path: root/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java')
-rw-r--r--subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java b/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java
new file mode 100644
index 00000000..b7879e12
--- /dev/null
+++ b/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java
@@ -0,0 +1,65 @@
+package net.sourceforge.subsonic.booter;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import net.sourceforge.subsonic.booter.agent.SettingsPanel;
+import net.sourceforge.subsonic.booter.agent.SubsonicAgent;
+
+/**
+ * Application entry point for Subsonic booter.
+ * <p/>
+ * Use command line argument "-agent" to start the Windows service monitoring agent,
+ * or "-mac" to start the Mac version of the deployer.
+ *
+ * @author Sindre Mehus
+ */
+public class Main {
+
+ public Main(String contextName, List<String> args) {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext" + contextName + ".xml");
+
+ if ("-agent".equals(contextName)) {
+
+ SubsonicAgent agent = (SubsonicAgent) context.getBean("agent");
+ SettingsPanel settingsPanel = (SettingsPanel) context.getBean("settingsPanel");
+
+ agent.setElevated(args.contains("-elevated"));
+
+ if (args.contains("-balloon")) {
+ agent.showTrayIconMessage();
+ }
+
+ if (args.contains("-stop")) {
+ agent.startOrStopService(false);
+ agent.showStatusPanel();
+ } else if (args.contains("-start")) {
+ agent.startOrStopService(true);
+ agent.showStatusPanel();
+ }
+
+ if (args.contains("-settings")) {
+ String[] settings = args.get(args.indexOf("-settings") + 1).split(",");
+ try {
+ agent.showSettingsPanel();
+ settingsPanel.saveSettings(Integer.valueOf(settings[0]), Integer.valueOf(settings[1]), Integer.valueOf(settings[2]), settings[3]);
+ settingsPanel.readValues();
+ } catch (Exception x) {
+ JOptionPane.showMessageDialog(settingsPanel, x.getMessage(), "Error", JOptionPane.WARNING_MESSAGE);
+ }
+ }
+ }
+ }
+
+ public static void main(String[] args) {
+ String context = "-deployer";
+ if (args.length > 0) {
+ context = args[0];
+ }
+ new Main(context, Arrays.asList(args));
+ }
+}