База знаний Зодиак.АйТиЭм

CoffeeScript в Зодиак.АйТиЭм

CoffeeScript в Зодиак.АйТиЭм

CoffeeScript - это современный процедурный скриптовый язык, созданный под влиянием современных языков Ruby, Haskell, Python, DHALL, Cue и декларативных форматов YAML и KDL.
Основными преимуществами CoffeeScript является компактность и легкочитаемость.

CoffeeScript является одним из языков первого порядка, поддерживаемых в Зодиак.АйТиЭм. Это означает, что Зодиак.АйТиЭм поддерживает исполнение сценариев CoffeeScript напрямую, без необходимости в установке дополнительного ПО и запуску таких сценариев из других языков.
Сценарии CoffeeScript поддерживаются как в режиме централизованного назначения (через директивы веб-консоли Зодиак.АйТиЭм), так и в ручном режиме на любом компьютере, где установлен агент Зодиак.АйТиЭм при помощи команды:

zosh <путь_до_файла.coffee>

Сценарии CoffeeScript являются кросс-платформенными и позволяют решать задачи управления как на компьютерах под управлением ОС Windows, так и на компьютерах под управлением ОС Linux.
Функции, доступные из сценариев CoffeeScript в Зодиак.АйТиЭм могут быть расширены в максимально короткий срок.

Краткий перечень функций в CoffeeScript

cat

Кросс-платформенная реализация утилиты cat в ОС семейства Linux. Позволяет читать содержимое файлов и перенаправлять это содержимое в другие функции.

Синопсис:

cat [options] file1, ... fileN
Options:
  -n: number all output lines`

Примеры:

cat [options] file1, ... fileN
Options:
  -n: number all output lines`

cd

Кросс-платформенная реализация изменения рабочей папки. Если не задан путь до папки изменяет рабочую папку на домашнюю директорию.

Синопсис:

cd [dir]

Примеры:

cd '/var/log'

chmod

Кросс-платформенная реализация изменения POSIX-прав доступа. Синопсис:

Синопсис:

chmod [options] mode path
Options:
    -v: output a diagnostic for every file processed
    -c: like verbose, but report only when a change is made
    -R: change files and directories recursively

Примеры:

chmod 755, '/Users/brandon'
chmod '755', '/Users/brandon'
chmod 'u+x', '/Users/brandon'
chmod '-R', 'a-w', '/Users/brandon'

cp

Кросс-платформенная реализация копирования файлов. Синопсис:

Синопсис:

cp [options] source1, ..., sourceN, target
Options:
    -f: force (default behavior)
    -n: no-clobber
    -u: only copy if source is newer than dest
    -r, -R: recursive
    -L: follow symlinks
    -P: don't follow symlinks

Примеры:

cp 'file1', 'dir1'
cp '-R', 'path/to/dir/', '~/newCopy/'
cp '-Rf', '/tmp/*', '/usr/local/*', '/home/tmp'

find

Кросс-платформенная реализация поиска файлов. Возвращает полные пути до всех найденных файлов. Используется в комбинации со стандартными функциями CoffeeScript по работе с массивами строк.

Синопсис:

find путь1, ..., путьN

Примеры:

find 'src', 'lib'
find 'D:/portables'
    .filter (f) -> f.endsWith '.exe'

grep

Кросс-платформенная реализация поиска текста в файлах. Синопсис:

Синопсис:

Options:
-v: Invert regex_filter (only print non-matching lines).
-l: Print only filenames of matching files.
-i: Ignore case.

Примеры:

grep '-v', 'Hello', '*.js'
grep 'Hello', '*.js'

head и tail

Кросс-платформенные реализации чтения первых и последних строк файла. Синопсис:

Синопсис:

head [options] file1, ... fileN
tail [options] file1, ... fileN
Options:
    -n <num>: Show the first <num> lines of the files

Примеры:

str = head {'-n': 1}, 'file*.txt'
str = head 'file1', 'file2'
str = tail {'-n': 1}, 'file*.txt'
str = tail 'file1', 'file2'

mkdir

Кросс-платформенная реализация создания папки.

Синопсис:

mkdir [options] dir1, ... dirN
Options:
-p: full path (and create intermediate directories, if necessary)

Примеры:

mkdir '/tmp/a/b/c/d', '/tmp/e/f/g'
mkdir '-p', '/tmp/a/b/c/d', '/tmp/e/f/g'

mv

Кросс-платформенные реализация перемещения файлов и папок.

Синопсис:

mv [options] source1, ... sourceN, dest
Options:
    -f: force (default behavior)
    -n: no-clobber

Примеры:

mv '-n', 'file', 'dir/'
mv 'file1', 'file2', 'dir/'

rm

Кросс-платформенная реализация удаления файлов и папок.

Синопсис:

rm [options] file1, ... fileN
Options:
    -f: force
    -r, -R: recursive

Примеры:

rm '-rf', '/tmp/*'
rm 'some_file.txt', 'another_file.txt'

ls

Кросс-платформенная реализация перечисление содержимого папок.

Синопсис:

ls [options] dir1, ... dirN
Options:
    -R: recursive
    -A: all files (include files beginning with ., except for . and ..)
    -L: follow symlinks
    -d: list directories themselves, not their contents
    -l: list objects representing each file

Примеры:

ls 'projs/*.js'
ls '-R', '/users/me', '/tmp'
ls '-l', 'file.txt'

test

Проверить существование файла или папки.

Синопсис:

test [option] path
Options:
    -b: path is a block device
    -c: path is a character device
    -d: path is a directory
    -e: path exists
    -f: path is a regular file
    -L: path is a symbolic link
    -p: path is a pipe (FIFO)
    -S: path is a socket

Примеры:

test('-d', '/var/log')
test('-f', 'C:/test.txt')

touch

Создать файл или изменить время доступа к нему.

Синопсис:

touch [options] file1, ... fileN
Options:
    -a: Change only the access time
    -c: Do not create any files
    -m: Change only the modification time
    -d DATE: Parse DATE and use it instead of current time
    -r FILE: Use FILE's times instead of current time

Примеры:

touch 'source.js'
touch '-c', '/path/to/some/dir/source.js'
touch { '-r': '/path/to/some/file.js' }, '/path/to/some/dir/source.js'

ps

Выполнить заданную команду PowerShell.

Синопсис:

ps command

Примеры:

ps 'New-Item "HKCU:\\SOFTWARE\\Test\\" | New-ItemProperty -Name TestProperty -Type
DWord -Value 1'

sh

Выполнить заданную команду shell/bash.

Синопсис:

sh command

Примеры:

sh 'pgrep firefox | xargs kill'

Другие функции

Отобразить уведомление всем пользователям ПК

zonot 'Заголовок', 'Текст'

Печать в консоль

echo 'Тест'
console.log 'Тест'

Получить временную папку

mydir = tempdir()

Заменить все вхождения в заданном файле

sed '-i', 'BUILD_VERSION', 'v0.1.2', 'D:\\test.txt'