about summary refs log tree commit diff
path: root/third_party/git/git-gui/lib/win32_shortcut.js
diff options
context:
space:
mode:
authorVincent Ambo <Vincent Ambo>2020-01-11T23·36+0000
committerVincent Ambo <Vincent Ambo>2020-01-11T23·40+0000
commit7ef0d62730840ded097b524104cc0a0904591a63 (patch)
treea670f96103667aeca4789a95d94ca0dff550c4ce /third_party/git/git-gui/lib/win32_shortcut.js
parent6a2a3007077818e24a3d56fc492ada9206a10cf0 (diff)
parent1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 (diff)
merge(third_party/git): Merge squashed git subtree at v2.23.0 r/373
Merge commit '1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5' as 'third_party/git'
Diffstat (limited to 'third_party/git/git-gui/lib/win32_shortcut.js')
-rw-r--r--third_party/git/git-gui/lib/win32_shortcut.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/third_party/git/git-gui/lib/win32_shortcut.js b/third_party/git/git-gui/lib/win32_shortcut.js
new file mode 100644
index 000000000000..117923f8860b
--- /dev/null
+++ b/third_party/git/git-gui/lib/win32_shortcut.js
@@ -0,0 +1,34 @@
+// git-gui Windows shortcut support
+// Copyright (C) 2007 Shawn Pearce
+
+var WshShell = WScript.CreateObject("WScript.Shell");
+var argv = WScript.Arguments;
+var argi = 0;
+var lnk_path = argv.item(argi++);
+var ico_path = argi < argv.length ? argv.item(argi++) : undefined;
+var dir_path = argi < argv.length ? argv.item(argi++) : undefined;
+var lnk_exec = argi < argv.length ? argv.item(argi++) : undefined;
+var lnk_args = '';
+while (argi < argv.length) {
+	var s = argv.item(argi++);
+	if (lnk_args != '')
+		lnk_args += ' ';
+	if (s.indexOf(' ') >= 0) {
+		lnk_args += '"';
+		lnk_args += s;
+		lnk_args += '"';
+	} else {
+		lnk_args += s;
+	}
+}
+
+var lnk = WshShell.CreateShortcut(lnk_path);
+if (argv.length == 1) {
+	WScript.echo(lnk.TargetPath);
+} else {
+	lnk.TargetPath = lnk_exec;
+	lnk.Arguments = lnk_args;
+	lnk.IconLocation = ico_path + ", 0";
+	lnk.WorkingDirectory = dir_path;
+	lnk.Save();
+}