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