mirror of
https://github.com/irssi/irssi.git
synced 2026-08-23 02:22:36 +02:00
Added scriptsave.pl
This commit is contained in:
parent
ec0360b921
commit
352be7fae2
1 changed files with 63 additions and 0 deletions
63
scripts/scriptsave.pl
Normal file
63
scripts/scriptsave.pl
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
use strict;
|
||||
use warnings;
|
||||
use Irssi;
|
||||
use File::Basename;
|
||||
use vars qw($VERSION %IRSSI);
|
||||
|
||||
$VERSION = '0.03';
|
||||
%IRSSI = (
|
||||
authors => 'lasers',
|
||||
contact => 'lasers on freenode',
|
||||
name => 'scriptsave',
|
||||
description => 'Loads scripts from file instead of autorun directory',
|
||||
license => 'Public Domain',
|
||||
);
|
||||
|
||||
# ──── USAGE: ─────
|
||||
# Outside irssi:
|
||||
# Remove ~/.irssi/scripts/autorun
|
||||
# Add "script load scriptsave" to ~/.irssi/startup
|
||||
#
|
||||
# Inside irssi:
|
||||
# /script save
|
||||
#
|
||||
# ──── NOTE: ────
|
||||
# Scripts will be saved to ~/.irssi/config.scriptsave
|
||||
|
||||
my $name = basename(__FILE__);
|
||||
$name =~ s/\.[^.]+$//;
|
||||
my $lst = Irssi::get_irssi_dir()."/config.scriptsave";
|
||||
|
||||
sub cmd_load_scripts(){
|
||||
if (open(my $f, '<:encoding(UTF-8)', $lst)){
|
||||
while (my $line = <$f>) {
|
||||
chomp $line;
|
||||
if ($line ne $name){
|
||||
Irssi::command('script load '.$line);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub cmd_save_scripts {
|
||||
unlink $lst;
|
||||
foreach (sort grep(s/::$//, keys %Irssi::Script::)){
|
||||
open(my $fh, ">>", $lst);
|
||||
if ($_ ne $name){
|
||||
print $fh "$_\n";
|
||||
}
|
||||
close $fh;
|
||||
}
|
||||
Irssi::print ("Scripts saved to $lst");
|
||||
}
|
||||
|
||||
sub cmd_print_help() {
|
||||
my ($args) = @_;
|
||||
if ($args =~ /^script( load)? *$/i){
|
||||
my $help = "\n/SCRIPT SAVE saves the list of currently loaded scripts to the file.";
|
||||
Irssi::print($help, MSGLEVEL_CLIENTCRAP);
|
||||
}
|
||||
}
|
||||
cmd_load_scripts;
|
||||
Irssi::command_bind('script save', 'cmd_save_scripts');
|
||||
Irssi::command_bind_last('help', 'cmd_print_help');
|
||||
Loading…
Add table
Add a link
Reference in a new issue