rc.d/01-update-xterm-title.rc
author Jan Vrany <jan.vrany@labware.com>
Tue, 09 Aug 2022 15:55:20 +0100
branchjv
changeset 1632 d5aeb42a3916
parent 1435 9a1f18933e40
permissions -rw-r--r--
Allow / (slash) to be used as separator with `--package-path` ...on systems where separator is different (e.g, Windows). This allows writing somewhat cross-platform scripts / makefiles (using make in Windows with MSYS2).

| xtermTitleUpdater |
xtermTitleUpdater := [
(((OperatingSystem getEnvironment:'TERM')  = 'xterm')
    or: [((OperatingSystem getEnvironment:'TERM')  = 'rxvt')])
    ifTrue:
	[Stdout
	    nextPutAll: #[8r033 8r135 8r060 8r073] asString;
	    nextPutAll: 'Smalltalk/X ';
	    nextPutAll: Smalltalk versionString.
	ObjectMemory imageName ifNotNil:
		[| image |
		image := ObjectMemory imageName.
		(image includes: $/) ifTrue:
		    [image := image copyFrom: (image lastIndexOf: $/) + 1].
		Stdout
		    nextPutAll: ' - ';
		    nextPutAll: image].
	Stdout
	    nextPut: 8r007 asCharacter]].


Smalltalk addStartBlock: xtermTitleUpdater.
Smalltalk addImageStartBlock: xtermTitleUpdater.
ObjectMemory addDependent:
    (Smalltalk at: #XTermTitleUpdater put:
	(InterestConverter
	    destination: xtermTitleUpdater
	    selector: #value
	    aspect: #finishedSnapshot)).