2016-04-14 10 views
1

Ich bekomme dieses Bash-Skript von der offiziellen Website von Iterm2.Wie Skript ausführen, um Iterm2 Badge von Nodejs zu setzen?

printf "\e]1337;SetBadgeFormat=%s\a" $(echo "text" | base64)

Ich versuchte exec wie unten, kein Fehler vorhanden ist, aber nicht iterm2 Abzeichen

var exec = require('child_process').exec; 
exec('printf "\e]1337;SetBadgeFormat=%s\a" $(echo "text" | base64)'); 
+0

Es ist wirklich klar, was Sie versuchen, zu erreichen, aber wenn Sie mehr darüber wissen wollen, was vor sich geht, fügen Sie einen Rückruf hinzu exec ('printf "\ e) 1337; SetBadgeFormat =% s \ a" $ (echo "Text" | base64) ', Funktion (Fehler, stdout, stderr) { // Dann console.log diese }); – aray12

+0

@ aray12 Log dieser Dinge ist nur "null", "e" 1337; SetBadgeFormat = ODA4MQo = a'', ''''. Ich finde, wenn das Skript in eine externe Datei z. 'setBadgeFormet.sh', und modifiziere das Knotenscript zu 'exec ('./ setBadgeFormet.sh')' es funktioniert! –

+0

Schön, dass Sie eine Lösung gefunden haben. Ich bin ehrlich gesagt nicht sicher, warum das die Dinge ändern würde – aray12

Antwort

1

setBadgeFormat.js gesetzt =>

#!/usr/bin/env node 

var rawBadgeFormat = 'test' 
var base64BadgeFormat = new Buffer(rawBadgeFormat).toString('base64') 
var setBadgeFormatCmd = 'printf "\\e]1337;SetBadgeFormat=' + base64BadgeFormat + '\\a"' 
require('child_process').exec(setBadgeFormatCmd, function(error, stdout, stderr) { 
    if (error) console.log(error); 
    process.stdout.write(stdout); // this line actually do the trick 
    process.stderr.write(stderr); 
});