[tomboy-list] [PATCH] Added options entry for sshfs

armen at opensourceclub.org armen at opensourceclub.org
Sat Jun 27 12:28:03 PDT 2009


Hello,

Just added a new entry which you can pass any options to sshfs,
the having port option is pointless so it's been removed.

Regards,
Armen Baghumian

---
 .../Addins/SshSyncService/SshSyncServiceAddin.cs   |   72
+++++++++----------- 1 files changed, 33 insertions(+), 39 deletions(-)

diff --git a/Tomboy/Addins/SshSyncService/SshSyncServiceAddin.cs
b/Tomboy/Addins/SshSyncService/SshSyncServiceAddin.cs index
f0f66d6..8a5f571 100644 ---
a/Tomboy/Addins/SshSyncService/SshSyncServiceAddin.cs +++
b/Tomboy/Addins/SshSyncService/SshSyncServiceAddin.cs @@ -16,6 +16,7 @@
namespace Tomboy.Sync Entry serverEntry;
 		Entry folderEntry;
 		Entry usernameEntry;
+		Entry optionsEntry;

 		/// <summary>
 		/// Creates a Gtk.Widget that's used to configure the
service.  This @@ -28,13 +29,11 @@ namespace Tomboy.Sync
 			Gtk.Table table = new Gtk.Table (3, 2, false);

 			// Read settings out of gconf
-			string server, folder, username;
-			int port;
-			GetConfigSettings (out server, out folder, out
username, out port);
+			string server, folder, username, options;
+
+			GetConfigSettings (out server, out folder, out
username, out options); if (server == null)
 				server = string.Empty;
-			if (port != 22)
-				server += ":" + port.ToString ();
 			if (folder == null)
 				folder = string.Empty;
 			if (username == null)
@@ -58,14 +57,23 @@ namespace Tomboy.Sync
 			usernameEntry.Text = username;
 			table.Attach (usernameEntry, 1, 2, 1, 2);

-			l = new Label (Catalog.GetString ("_Folder
Path (optional):"));
+			l = new Label (Catalog.GetString ("SSHFS
_Options:")); l.Xalign = 1;
 			table.Attach (l, 0, 1, 2, 3);

+			optionsEntry = new Entry ();
+			l.MnemonicWidget = optionsEntry;
+			optionsEntry.Text = options;
+			table.Attach (optionsEntry, 1, 2, 2, 3);
+
+			l = new Label (Catalog.GetString ("_Folder
Path (optional):"));
+			l.Xalign = 1;
+			table.Attach (l, 0, 1, 3, 4);
+
 			folderEntry = new Entry ();
 			l.MnemonicWidget = folderEntry;
 			folderEntry.Text = folder;
-			table.Attach (folderEntry, 1, 2, 2, 3);
+			table.Attach (folderEntry, 1, 2, 3, 4);

 			// Text for label describing setup required
for SSH sync addin to work string sshInfo = Catalog.GetString ("SSH
synchronization requires an existing SSH key for this " + @@ -86,10
+94,9 @@ namespace Tomboy.Sync
 		protected override bool VerifyConfiguration ()
 		{
-			string server, folder, username;
-			int port;
+			string server, folder, username, options;

-			if (!GetPrefWidgetSettings (out server, out
folder, out username, out port)) {
+			if (!GetPrefWidgetSettings (out server, out
folder, out username, out options)) { // TODO: Figure out a way to send
the error back to the client Logger.Debug ("One of url, username was
empty"); throw new TomboySyncException (Catalog.GetString ("Server or
username field is empty.")); @@ -100,12 +107,11 @@ namespace Tomboy.Sync

 		protected override void SaveConfigurationValues ()
 		{
-			string server, folder, username;
-			int port;
-			GetPrefWidgetSettings (out server, out folder,
out username, out port);
+			string server, folder, username, options;
+			GetPrefWidgetSettings (out server, out folder,
out username, out options);
 			Preferences.Set
("/apps/tomboy/sync_sshfs_server", server);
-			Preferences.Set
("/apps/tomboy/sync_sshfs_port", port);
+			Preferences.Set
("/apps/tomboy/sync_sshfs_options", options); Preferences.Set
("/apps/tomboy/sync_sshfs_folder", folder); Preferences.Set
("/apps/tomboy/sync_sshfs_username", username); }
@@ -116,7 +122,7 @@ namespace Tomboy.Sync
 		protected override void ResetConfigurationValues ()
 		{
 			Preferences.Set
("/apps/tomboy/sync_sshfs_server", string.Empty);
-			Preferences.Set
("/apps/tomboy/sync_sshfs_port", 22);
+			Preferences.Set
("/apps/tomboy/sync_sshfs_options", string.Empty); Preferences.Set
("/apps/tomboy/sync_sshfs_folder", string.Empty); Preferences.Set
("/apps/tomboy/sync_sshfs_username", string.Empty); }
@@ -127,9 +133,8 @@ namespace Tomboy.Sync
 		public override bool IsConfigured
 		{
 			get {
-				string server, folder, username;
-				int port;
-				return GetConfigSettings (out server,
out folder, out username, out port);
+				string server, folder, username,
options;
+				return GetConfigSettings (out server,
out folder, out username, out options); }
 		}

@@ -157,21 +162,20 @@ namespace Tomboy.Sync

 		protected override string GetFuseMountExeArgs (string
mountPath, bool fromStoredValues) {
-			int port = 22;
-			string server, folder, username;
+			string server, folder, username, options;
 			if (fromStoredValues)
-				GetConfigSettings (out server, out
folder, out username, out port);
+				GetConfigSettings (out server, out
folder, out username, out options); else
-				GetPrefWidgetSettings (out server, out
folder, out username, out port);
+				GetPrefWidgetSettings (out server, out
folder, out username, out options); return string.Format (
-			               "-p {0} {1}@{2}:{3} {4}",
-			               port,
+			               "{0} {1}@{2}:{3} {4}",
+			               options,
 			               username,
 			               server,
 			               folder,
 			               mountPath);
 		}
-
+
 		protected override string
GetFuseMountExeArgsForDisplay (string mountPath, bool fromStoredValues)
{ return GetFuseMountExeArgs (mountPath, fromStoredValues);
@@ -199,13 +203,10 @@ namespace Tomboy.Sync
 		/// <summary>
 		/// Get config settings
 		/// </summary>
-		private bool GetConfigSettings (out string server, out
string folder, out string username, out int port)
+		private bool GetConfigSettings (out string server, out
string folder, out string username, out string options) {
 			server = Preferences.Get
("/apps/tomboy/sync_sshfs_server") as String;
-			port = 22;
-			try {
-				port = (int)Preferences.Get
("/apps/tomboy/sync_sshfs_port");
-			} catch {}
+			options = Preferences.Get
("/apps/tomboy/sync_sshfs_options") as String; folder = Preferences.Get
("/apps/tomboy/sync_sshfs_folder") as String; username =
Preferences.Get ("/apps/tomboy/sync_sshfs_username") as String;
@@ -216,19 +217,12 @@ namespace Tomboy.Sync
 		/// <summary>
 		/// Get config settings
 		/// </summary>
-		private bool GetPrefWidgetSettings (out string server,
out string folder, out string username, out int port)
+		private bool GetPrefWidgetSettings (out string server,
out string folder, out string username, out string options) {
-			port = 22;
 			server = serverEntry.Text.Trim ();
-			int lastColonIndex = server.LastIndexOf(":");
-			if (lastColonIndex > 0) {
-				try {
-					port = int.Parse
(server.Substring (lastColonIndex + 1));
-				} catch {}
-				server = server.Substring (0,
lastColonIndex);
-			}
 			folder = folderEntry.Text.Trim ();
 			username = usernameEntry.Text.Trim ();
+			options = optionsEntry.Text.Trim ();

 			return !string.IsNullOrEmpty (server)
 			       && !string.IsNullOrEmpty (username);
-- 
1.5.5.dirty





More information about the Tomboy-list mailing list