Permalink
Browse files

First stab at an executable that can be put into the SSH_ASKPASS envi…

…ronment variable to make GitX ask for passwords.

Set the environment variables for our tool. We have a rudimentary but working password panel now. Prettification later.

Label on password window so it's less cryptic.
  • Loading branch information...
uliwitness authored and brotherbard committed Feb 19, 2010
1 parent de7d74c commit a6b5705a5fe95034e7537566763ce23c2267685e
Showing with 300 additions and 0 deletions.
  1. +5 −0 ApplicationController.m
  2. +136 −0 GitX.xcodeproj/project.pbxproj
  3. +159 −0 gitx_askpasswd_main.m
View
@@ -67,6 +67,11 @@ - (void)registerServices
- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
[[SUUpdater sharedUpdater] setSendsSystemProfile:YES];
+
+ // Make sure Git's SSH password requests get forwarded to our little UI tool:
+ setenv( "SSH_ASKPASS", [[[NSBundle mainBundle] pathForResource: @"gitx_askpasswd" ofType: @""] UTF8String], 1 );
+ setenv( "DISPLAY", "localhost:0", 1 );
+
[self registerServices];
BOOL hasOpenedDocuments = NO;
@@ -29,6 +29,8 @@
47DBDB6A0E94EF6500671A1E /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 47DBDB680E94EF6500671A1E /* Preferences.xib */; };
47DBDBB10E94F6CA00671A1E /* Updates.png in Resources */ = {isa = PBXBuildFile; fileRef = 47DBDBB00E94F6CA00671A1E /* Updates.png */; };
47DBDBCA0E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m in Sources */ = {isa = PBXBuildFile; fileRef = 47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */; };
+ 551BF11E112F376C00265053 /* gitx_askpasswd_main.m in Sources */ = {isa = PBXBuildFile; fileRef = 551BF11D112F376C00265053 /* gitx_askpasswd_main.m */; };
+ 551BF176112F3F4B00265053 /* gitx_askpasswd in Resources */ = {isa = PBXBuildFile; fileRef = 551BF111112F371800265053 /* gitx_askpasswd */; };
770B37ED0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel in Sources */ = {isa = PBXBuildFile; fileRef = 770B37EC0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel */; };
77C8280E06725ACE000B614F /* ApplicationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C8280C06725ACE000B614F /* ApplicationController.m */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
@@ -182,6 +184,13 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
+ 551BF174112F3F3500265053 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 551BF110112F371800265053;
+ remoteInfo = gitx_askpasswd;
+ };
913D5E590E5564F400CECEA2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
@@ -236,6 +245,8 @@
47DBDBB00E94F6CA00671A1E /* Updates.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Updates.png; path = Images/Preferences/Updates.png; sourceTree = "<group>"; };
47DBDBC80E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBNSURLPathUserDefaultsTransfomer.h; sourceTree = "<group>"; };
47DBDBC90E95016F00671A1E /* PBNSURLPathUserDefaultsTransfomer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBNSURLPathUserDefaultsTransfomer.m; sourceTree = "<group>"; };
+ 551BF111112F371800265053 /* gitx_askpasswd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = gitx_askpasswd; sourceTree = BUILT_PRODUCTS_DIR; };
+ 551BF11D112F376C00265053 /* gitx_askpasswd_main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = gitx_askpasswd_main.m; sourceTree = "<group>"; };
770B37EC0679A11B001EADE2 /* GitTest_DataModel.xcdatamodel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wrapper.xcdatamodel; path = GitTest_DataModel.xcdatamodel; sourceTree = "<group>"; };
77C82804067257F0000B614F /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
77C8280B06725ACE000B614F /* ApplicationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApplicationController.h; sourceTree = "<group>"; };
@@ -434,6 +445,13 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 551BF10F112F371800265053 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -512,6 +530,7 @@
913D5E490E55644600CECEA2 /* gitx */,
F5886A100ED5D33D0066E74C /* SpeedTest.app */,
F567CC39106E6B910059BB9D /* GitXTesting.framework */,
+ 551BF111112F371800265053 /* gitx_askpasswd */,
);
name = Products;
sourceTree = "<group>";
@@ -528,6 +547,7 @@
7756732906782D8800D1FEB8 /* Models */,
080E96DDFE201D6D7F000001 /* Classes */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
+ 551BF118112F373E00265053 /* gitx_asskpasswd */,
29B97317FDCFA39411CA2CEA /* Resources */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
@@ -612,6 +632,14 @@
name = "Preference Icons";
sourceTree = "<group>";
};
+ 551BF118112F373E00265053 /* gitx_asskpasswd */ = {
+ isa = PBXGroup;
+ children = (
+ 551BF11D112F376C00265053 /* gitx_askpasswd_main.m */,
+ );
+ name = gitx_asskpasswd;
+ sourceTree = "<group>";
+ };
7756732906782D8800D1FEB8 /* Models */ = {
isa = PBXGroup;
children = (
@@ -931,6 +959,22 @@
/* End PBXLegacyTarget section */
/* Begin PBXNativeTarget section */
+ 551BF110112F371800265053 /* gitx_askpasswd */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 551BF119112F373E00265053 /* Build configuration list for PBXNativeTarget "gitx_askpasswd" */;
+ buildPhases = (
+ 551BF10E112F371800265053 /* Sources */,
+ 551BF10F112F371800265053 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = gitx_askpasswd;
+ productName = gitx_askpasswd;
+ productReference = 551BF111112F371800265053 /* gitx_askpasswd */;
+ productType = "com.apple.product-type.tool";
+ };
8D1107260486CEB800E47090 /* GitX */ = {
isa = PBXNativeTarget;
buildConfigurationList = 26FC0A840875C7B200E6366F /* Build configuration list for PBXNativeTarget "GitX" */;
@@ -944,6 +988,7 @@
buildRules = (
);
dependencies = (
+ 551BF175112F3F3500265053 /* PBXTargetDependency */,
913D5E5A0E5564F400CECEA2 /* PBXTargetDependency */,
F5643A020F792B4900A579C2 /* PBXTargetDependency */,
D8022C1A11DFE8ED003C21F6 /* PBXTargetDependency */,
@@ -1022,6 +1067,7 @@
F56439F70F792B2100A579C2 /* Generate PList Prefix */,
F567CC38106E6B910059BB9D /* GitXTesting */,
D8022B1411DFCE7F003C21F6 /* libgit2 */,
+ 551BF110112F371800265053 /* gitx_askpasswd */,
);
};
/* End PBXProject section */
@@ -1033,6 +1079,7 @@
files = (
F5E92A1B0E88550E00056E75 /* empty_file.png in Resources */,
913D5E500E55645900CECEA2 /* gitx in Resources */,
+ 551BF176112F3F4B00265053 /* gitx_askpasswd in Resources */,
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
F5B721C40E05CF7E00AF29DC /* MainMenu.xib in Resources */,
911111E20E58BD5A00BF76B4 /* RepositoryWindow.xib in Resources */,
@@ -1116,6 +1163,14 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 551BF10E112F371800265053 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 551BF11E112F376C00265053 /* gitx_askpasswd_main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -1248,6 +1303,11 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
+ 551BF175112F3F3500265053 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 551BF110112F371800265053 /* gitx_askpasswd */;
+ targetProxy = 551BF174112F3F3500265053 /* PBXContainerItemProxy */;
+ };
913D5E5A0E5564F400CECEA2 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 913D5E480E55644600CECEA2 /* cli tool */;
@@ -1434,6 +1494,72 @@
};
name = Release;
};
+ 551BF113112F371800265053 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INSTALL_PATH = /usr/local/bin;
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = gitx_askpasswd;
+ };
+ name = Debug;
+ };
+ 551BF114112F371800265053 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INSTALL_PATH = /usr/local/bin;
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = gitx_askpasswd;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ 551BF115112F371800265053 /* Install */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INSTALL_PATH = /usr/local/bin;
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = gitx_askpasswd;
+ };
+ name = Install;
+ };
913D5E4B0E55644600CECEA2 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -1666,6 +1792,16 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 551BF119112F373E00265053 /* Build configuration list for PBXNativeTarget "gitx_askpasswd" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 551BF113112F371800265053 /* Debug */,
+ 551BF114112F371800265053 /* Release */,
+ 551BF115112F371800265053 /* Install */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
913D5E570E55646100CECEA2 /* Build configuration list for PBXNativeTarget "cli tool" */ = {
isa = XCConfigurationList;
buildConfigurations = (
Oops, something went wrong.

0 comments on commit a6b5705

Please sign in to comment.