File: extString_osx.sc

package info (click to toggle)
supercollider 1%3A3.13.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 80,292 kB
  • sloc: cpp: 476,363; lisp: 84,680; ansic: 77,685; sh: 25,509; python: 7,909; makefile: 3,440; perl: 1,964; javascript: 974; xml: 826; java: 677; yacc: 314; lex: 175; objc: 152; ruby: 136
file content (28 lines) | stat: -rw-r--r-- 1,002 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
+ String {
	// some things (e.g. SVN certificate acceptance, for Quarks) can only be achieved in an interactive prompt
	runInTerminal { | shell="/bin/bash" |
		var fpath, file;

		// At present we only know how to do this when /usr/bin/open exists, which unfortunately means OSX-only.
		if(File.exists("/usr/bin/open").not){
			"String:runInTerminal - /usr/bin/open not found, unable to run. Usually this means you're not using Mac OSX, which is at present the only platform which supports String:runInTerminal (sorry).".error;
		};

		fpath = PathName.tmp ++ "SCStringForTerminal" ++ (this.hash.asString) ++ ".command";
		file = File(fpath, "w");

		if(file.isOpen.not) {"String:runInTerminal was unable to create the script file".error} {
			fpath = fpath.shellQuote;
			file.write("#!"++shell++"\n"
					++this++"\n"
					++"rm"+fpath+"\n");
			file.close;
			("/bin/chmod +x" + fpath).systemCmd;
			("/usr/bin/open -a Terminal" + fpath).systemCmd;
		};
	}

	openOS {
		["open", this].unixCmd;
	}
}