File: extString_osx.sc

package info (click to toggle)
supercollider 1%3A3.11.2%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 71,152 kB
  • sloc: cpp: 387,846; lisp: 80,328; ansic: 76,515; sh: 22,779; python: 7,932; makefile: 2,333; perl: 1,123; javascript: 915; java: 677; xml: 582; yacc: 314; lex: 175; objc: 152; ruby: 136
file content (28 lines) | stat: -rw-r--r-- 1,021 bytes parent folder | download
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.escapeChar($ )).systemCmd
	}
}