Как насчет Perl? Он является родным для Linux. Моя тестовая установка выглядит следующим образом... mp3.pl
скрипт находится в том же каталоге, что и music
, который содержит песни, над которыми мы будем работать. Я передаю его в качестве аргумента командной строки. Код выполняет итерации по этому каталогу, получая все mp3-файлы. Затем он перебирает список треков и по одному переименовывает их в название трека:
Сначала посмотрим, какие треки у нас есть:
$ ls music
track1.mp3 track2.mp3
Код:
use warnings;
use strict;
use File::Copy;
use File::Find::Rule;
use MP3::Tag;
if (! @ARGV){
print "usage: perl mp3.pl <directory>\n";
exit;
}
my $dir = $ARGV[0];
my @files = File::Find::Rule->file()
->name('*.mp3')
->in($dir);
for my $track (@files){
my $mp3 = MP3::Tag->new($track);
my $title = $mp3->title;
$title .= '.mp3';
move $track, "$dir/$title" or die $!;
}
Запустите его:
perl mp3.pl music
Каталог 'music' после изменения:
$ ls music/
Almost Famous.mp3 No Love (feat Lil Wayne).mp3
Я не могу сказать, как выглядит ваша часть puppet. В любом случае, модуль puppet-nginx имеет ресурс nginx::resource::vhost
, который - я предполагаю - вы как-то используете. Этот ресурс имеет опцию ipv6_listen_options
, которая включает ipv6only=on по умолчанию. Поэтому вы должны быть в состоянии вызвать его таким образом:
nginx::resource::vhost { 'example.com':
ipv6_listen_options => '',
# another options there
}
Другая возможность заключается в том, что вы используете старый модуль, который имел ipv6only=on
жестко закодированный в шаблоне. Это было исправлено в феврале с этим pull request. Поэтому вы можете удалить его из шаблона или обновить модуль.