de grosses MÀJ et ajout du projet 'antipixel'
This commit is contained in:
parent
1c8a6574dd
commit
6f3dd64f72
@ -1,17 +0,0 @@
|
|||||||
#!/usr/bin/perl -w
|
|
||||||
|
|
||||||
# This script displays the number of lines in a file
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
die "un argument svp ! " if !defined ($ARGV[0]);
|
|
||||||
|
|
||||||
my $i=0;
|
|
||||||
open(P,"< $ARGV[0]") || die "erreur ouverture $!";
|
|
||||||
|
|
||||||
while (<P>)
|
|
||||||
{
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
close(P);
|
|
||||||
print "nb de lignes = $i \n";
|
|
9
bash/add-torrents
Executable file
9
bash/add-torrents
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
dir=~/Téléchargements/
|
||||||
|
torrentsdir=~/torrents/
|
||||||
|
server=server
|
||||||
|
|
||||||
|
find $dir -name "*.torrent" -exec transmission-remote-cli -a "{}" && mv "{}" $torrentsdir \;
|
||||||
|
rsync -av $torrentsdir $server:$torrentsdir
|
||||||
|
#ssh $server $(< add-torrents-remote)
|
BIN
c/weechat_plugins/libcurrentsong.so
Executable file
BIN
c/weechat_plugins/libcurrentsong.so
Executable file
Binary file not shown.
66
c/weechat_plugins/test.c
Normal file
66
c/weechat_plugins/test.c
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define TAILLE 5
|
||||||
|
#define TAILLE_CHAINE 20
|
||||||
|
#define TAILLE_BUFFER_CURRENT_SONG 200
|
||||||
|
#define TAILLE_OPTIONS 20
|
||||||
|
|
||||||
|
int main(int argc, char * argv[])
|
||||||
|
{
|
||||||
|
int i,status;
|
||||||
|
int p[2];
|
||||||
|
char ** cmd;
|
||||||
|
char * song;
|
||||||
|
char * affichage;
|
||||||
|
cmd = (char **) malloc(sizeof(char*) * argc+1);
|
||||||
|
if(argc > 3) argc = 3;
|
||||||
|
for(i = 0 ; i < argc + 2 ; i++)
|
||||||
|
cmd[i] = malloc(sizeof(char*) * TAILLE_OPTIONS);
|
||||||
|
free(cmd[i-1]);
|
||||||
|
cmd[i-1] = (char *)0;
|
||||||
|
strcpy(cmd[0],"mpc");
|
||||||
|
strcpy(cmd[i-2],"current");
|
||||||
|
if(argc == 3)
|
||||||
|
{
|
||||||
|
strcpy(cmd[1],"-h");
|
||||||
|
strcpy(cmd[2],argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
song = malloc(TAILLE_BUFFER_CURRENT_SONG*sizeof(char));
|
||||||
|
affichage = malloc((TAILLE_BUFFER_CURRENT_SONG + 10) * sizeof(char));
|
||||||
|
|
||||||
|
for(i = 0 ; i < TAILLE_BUFFER_CURRENT_SONG ; i++)
|
||||||
|
song[i] = '\0';
|
||||||
|
for(i = 0 ; i < TAILLE_BUFFER_CURRENT_SONG + 10 ; i++)
|
||||||
|
affichage[i] = '\0';
|
||||||
|
|
||||||
|
pipe(p);
|
||||||
|
if(fork() == 0)
|
||||||
|
{
|
||||||
|
close(p[0]);
|
||||||
|
close(0); close(2);
|
||||||
|
dup2(p[1],1);
|
||||||
|
execvp("mpc", cmd);
|
||||||
|
}
|
||||||
|
close(p[1]);
|
||||||
|
read(p[0], song, TAILLE_BUFFER_CURRENT_SONG);
|
||||||
|
close(p[0]);
|
||||||
|
wait(&status);
|
||||||
|
if(WEXITSTATUS(status) != 0)
|
||||||
|
sprintf(song,"didn't worked !!!");
|
||||||
|
sprintf(affichage,"/me ♪ %s", song);
|
||||||
|
|
||||||
|
//sprintf(affichage,"/me ♪ %s%s", weechat_color ("_red"), song); // Ne s'affiche pas correctement chez les autres
|
||||||
|
//weechat_utf8_normalize(affichage, '?'); // Pour ne pas avoir de caractères non-lisibles
|
||||||
|
|
||||||
|
printf("AFFICHAGE : %s\n",affichage);
|
||||||
|
free(song); // :')
|
||||||
|
for(i = 0 ; i < argc ; i++)
|
||||||
|
free(cmd[i]);
|
||||||
|
free(cmd);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
26
perl/LeLangagePerl.txt
Normal file
26
perl/LeLangagePerl.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Le langage Perl
|
||||||
|
|
||||||
|
Variables :
|
||||||
|
Scalaires : $
|
||||||
|
Structurées : tableaux : @
|
||||||
|
table de hash : %
|
||||||
|
|
||||||
|
|
||||||
|
Langage contextuel = ne pas définir de type de variable
|
||||||
|
|
||||||
|
$_ = variable par défaut
|
||||||
|
|
||||||
|
exemple :
|
||||||
|
$prenom = "Eric"
|
||||||
|
print "$prenom\n";
|
||||||
|
print $prenom."\n";
|
||||||
|
print $prenom,"\n";
|
||||||
|
print '$prenom\n'
|
||||||
|
|
||||||
|
Autre exemple :
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
while(<>)
|
||||||
|
{
|
||||||
|
print;
|
||||||
|
};
|
BIN
perl/antipixel/.MyWrapper.pm.swp
Normal file
BIN
perl/antipixel/.MyWrapper.pm.swp
Normal file
Binary file not shown.
BIN
perl/antipixel/.lanceur.pl.swp
Normal file
BIN
perl/antipixel/.lanceur.pl.swp
Normal file
Binary file not shown.
52
perl/antipixel/MyWrapper.pm
Normal file
52
perl/antipixel/MyWrapper.pm
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package MyWrapper;
|
||||||
|
use GD;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.16.0;
|
||||||
|
use Moo;
|
||||||
|
use MooX::Options;
|
||||||
|
|
||||||
|
has couleurs => ( is => 'ro', builder => '_build_colors' );
|
||||||
|
|
||||||
|
|
||||||
|
option mess => ( is => 'rw',
|
||||||
|
doc => 'message', format => 's', default => sub { 'message à afficher' } );
|
||||||
|
option couleur_externe => ( is => 'rw',
|
||||||
|
doc => 'couleur externe', format => 's', default => sub { 'bleu' });
|
||||||
|
option couleur_interne => ( is => 'rw',
|
||||||
|
doc => 'couleur interne', format => 's' );
|
||||||
|
option couleur_background => ( is => 'rw' ,
|
||||||
|
doc => 'couleur du fond (écriture)', format => 's');
|
||||||
|
|
||||||
|
|
||||||
|
sub _build_colors {
|
||||||
|
{
|
||||||
|
bleu => [0, 0, 255],
|
||||||
|
rouge => [255, 0, 0],
|
||||||
|
vert => [0, 255, 0],
|
||||||
|
noir => [0, 0, 0],
|
||||||
|
blanc => [255, 255, 255],
|
||||||
|
gris => [140, 140, 140]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
sub tests {
|
||||||
|
my ($self) = @_;
|
||||||
|
my %couleurs = %{$self->couleurs};
|
||||||
|
|
||||||
|
say "mess : " . $self->mess;
|
||||||
|
say "couleur_externe : " . $self->couleur_externe;
|
||||||
|
say "Cette couleur n'existe pas !" unless exists $couleurs{$self->couleur_externe};
|
||||||
|
say "couleurs : " . join( ', ' , keys %couleurs) ;
|
||||||
|
while( my ($key , $value) = each %couleurs)
|
||||||
|
{
|
||||||
|
say "La couleur $key est : " . join(', ' , @$value);
|
||||||
|
}
|
||||||
|
# say "couleur_interne : " . $self->couleur_interne;
|
||||||
|
# say "couleur_background : " . $self->couleur_background;
|
||||||
|
}
|
||||||
|
sub run {
|
||||||
|
my $self = shift;
|
||||||
|
say "RUN !!!";
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
36
perl/antipixel/gd_image.pl
Normal file
36
perl/antipixel/gd_image.pl
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
use GD;
|
||||||
|
|
||||||
|
my $x = 100;
|
||||||
|
my $y = 15;
|
||||||
|
my $intersection = $x - 30;
|
||||||
|
my $espace_entre_mots = 2;
|
||||||
|
my $w1 = "Alsace";
|
||||||
|
my $w2 = "Réseau";
|
||||||
|
my $w3 = "Neutre";
|
||||||
|
|
||||||
|
# create a new image
|
||||||
|
$im = new GD::Image($x,$y);
|
||||||
|
|
||||||
|
# allocate some colors
|
||||||
|
$grey = $im->colorAllocate(140,140,140);
|
||||||
|
$white = $im->colorAllocate(255,255,255);
|
||||||
|
$black = $im->colorAllocate(0,0,0);
|
||||||
|
$red = $im->colorAllocate(255,0,0);
|
||||||
|
$blue = $im->colorAllocate(0,0,255);
|
||||||
|
|
||||||
|
# make the background transparent and interlaced
|
||||||
|
#$im->transparent($white);
|
||||||
|
$im->interlaced('true');
|
||||||
|
|
||||||
|
# Put a black frame around the picture
|
||||||
|
$im->rectangle(0, 0, $x -1, $y -1, $black);
|
||||||
|
$im->filledRectangle(1, 1, $x -2, $y -2, $white);
|
||||||
|
$im->filledRectangle(2, 2, $intersection - $espace_entre_mots, $y -3, $red);
|
||||||
|
|
||||||
|
# make sure we are writing to a binary stream
|
||||||
|
binmode STDOUT;
|
||||||
|
|
||||||
|
# Convert the image to PNG and print it on standard output
|
||||||
|
print $im->png;
|
8
perl/antipixel/lanceur.pl
Normal file
8
perl/antipixel/lanceur.pl
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use MyWrapper;
|
||||||
|
my $wrapper = MyWrapper->new_with_options();
|
||||||
|
$wrapper->tests();
|
||||||
|
$wrapper->run();
|
||||||
|
|
18
perl/essai.perl
Executable file
18
perl/essai.perl
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
while(<>)
|
||||||
|
{
|
||||||
|
if($_ =~ "Salut")
|
||||||
|
{
|
||||||
|
print "OK\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
while(<>)
|
||||||
|
{
|
||||||
|
print if $_=~/"Bonjour"/;
|
||||||
|
};
|
||||||
|
# Encore plus simple !!
|
||||||
|
while(<>)
|
||||||
|
{
|
||||||
|
print if /"Bonjour"/;
|
||||||
|
};
|
16
perl/essai2.perl
Executable file
16
perl/essai2.perl
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
# Tableaux
|
||||||
|
@tab1 = ("lu", "ma", "me");
|
||||||
|
@tab2 = @tab1[1,2];
|
||||||
|
@tab2 = @tab1;
|
||||||
|
print $tab[0];
|
||||||
|
print $#tab1; # $# = index du dernier élément
|
||||||
|
$tab1[3] = "Je";
|
||||||
|
$tab1[30] = "Mon Langage Perl";
|
||||||
|
|
||||||
|
$#tab $_
|
||||||
|
|
||||||
|
@ARGV
|
||||||
|
|
||||||
|
$ARGV[0] # Le premier argument saisi
|
||||||
|
$#ARGV
|
24
perl/essai3.perl
Executable file
24
perl/essai3.perl
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Exercices tableaux
|
||||||
|
@alphabet = ("a" .. "z");
|
||||||
|
@cartes = ("01".."10","valet","dame","roi");
|
||||||
|
@annee=("a1","a2","lp");
|
||||||
|
@promo=@annee;
|
||||||
|
@tout = (@alphabet , "dut" , @cartes , 1145, "\n");
|
||||||
|
|
||||||
|
print @tout;
|
||||||
|
|
||||||
|
# Autre exercice
|
||||||
|
|
||||||
|
@jours=("Lundi","Mardi","Mercredi");
|
||||||
|
|
||||||
|
foreach $jours(@jours)
|
||||||
|
{
|
||||||
|
print $jours."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Perl : les nombres : < > <= >= == !=
|
||||||
|
# Chaînes : lt gt eq ne
|
||||||
|
|
||||||
|
# !~ et =~ sont des opérateurs d'appartenance
|
21
perl/grep.pl
Executable file
21
perl/grep.pl
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
# -w pour les erreurs
|
||||||
|
|
||||||
|
$motif = shift(@ARGV);
|
||||||
|
# $motif=$ARGV[0]
|
||||||
|
#Shift
|
||||||
|
|
||||||
|
# Manière non explicite
|
||||||
|
while(<>)
|
||||||
|
{
|
||||||
|
if(/$motif/) { print ; };
|
||||||
|
};
|
||||||
|
|
||||||
|
# Manière explicite
|
||||||
|
while($ligne = <>)
|
||||||
|
{
|
||||||
|
if($ligne =~ /$motif/)
|
||||||
|
{
|
||||||
|
print $ligne;
|
||||||
|
}
|
||||||
|
};
|
14
perl/grep2.pl
Executable file
14
perl/grep2.pl
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
$motif=$ARGV[0];
|
||||||
|
shift;
|
||||||
|
foreach $f (@ARGV)
|
||||||
|
{
|
||||||
|
open(F,"<$f") || die "Impossible de lire le fichier $f : $!";
|
||||||
|
|
||||||
|
while(<F>)
|
||||||
|
{
|
||||||
|
if(/$motif/)
|
||||||
|
{ print "Motif trouvé dans $f : $_ \n";}
|
||||||
|
};
|
||||||
|
}
|
BIN
perl/image.png
Normal file
BIN
perl/image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 173 B |
15
perl/wc.pl
Executable file
15
perl/wc.pl
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
# Utilisation : wc.pl fichier
|
||||||
|
|
||||||
|
open(F, "<$ARGV[0]") || die "Problème d'ouverture de fichier ! ";
|
||||||
|
|
||||||
|
$i = 0 ;
|
||||||
|
while(<F>)
|
||||||
|
{
|
||||||
|
$i++;
|
||||||
|
};
|
||||||
|
|
||||||
|
close(F);
|
||||||
|
|
||||||
|
print "Nombre de lignes : $i \n";
|
Loading…
Reference in New Issue
Block a user