patch-VariableIsNotImported #7
							
								
								
									
										14
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@@ -1,14 +0,0 @@
 | 
			
		||||
# Set the default behavior, in case people don't have core.autocrlf set.
 | 
			
		||||
* text=auto eol=lf
 | 
			
		||||
 | 
			
		||||
# Explicitly declare text files you want to always be normalized and converted
 | 
			
		||||
# to native line endings on checkout.
 | 
			
		||||
*.pm text eol=lf
 | 
			
		||||
*.pl text eol=lf
 | 
			
		||||
*.hash text eol=lf
 | 
			
		||||
*.txt text eol=lf
 | 
			
		||||
*.sh text eol=lf
 | 
			
		||||
 | 
			
		||||
# Denote all files that are truly binary and should not be modified.
 | 
			
		||||
*.hex binary
 | 
			
		||||
*.bin binary
 | 
			
		||||
							
								
								
									
										7
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,7 +0,0 @@
 | 
			
		||||
version: 2
 | 
			
		||||
updates:
 | 
			
		||||
  # Maintain dependencies for GitHub Actions
 | 
			
		||||
  - package-ecosystem: "github-actions"
 | 
			
		||||
    directory: "/"
 | 
			
		||||
    schedule:
 | 
			
		||||
      interval: "weekly"
 | 
			
		||||
							
								
								
									
										97
									
								
								.github/workflows/fhem_test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										97
									
								
								.github/workflows/fhem_test.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,97 +0,0 @@
 | 
			
		||||
name: Fhem UnitTest
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
    paths:
 | 
			
		||||
      - 'FHEM/**'
 | 
			
		||||
      - 'UnitTest/**'
 | 
			
		||||
      - 't/**'
 | 
			
		||||
      - '.github/workflows/fhem_test.yml'
 | 
			
		||||
  
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '43 17 * * 1'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  update_controls:
 | 
			
		||||
    env:
 | 
			
		||||
      CONTROLS_FILENAME: controls_${{ github.event.repository.name }}.txt
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Extract branch name
 | 
			
		||||
      run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/*/})"
 | 
			
		||||
      id: extract_branch
 | 
			
		||||
    - name: Checkout Repostory
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      with:
 | 
			
		||||
        fetch-depth: 0
 | 
			
		||||
    - name: update controls files
 | 
			
		||||
      uses: fhem/fhem-controls-actions@v2
 | 
			
		||||
      with:
 | 
			
		||||
        filename: ${{env.CONTROLS_FILENAME}} 
 | 
			
		||||
    - name: update CHANGED
 | 
			
		||||
      run: |
 | 
			
		||||
        LOG=$(date +"%Y-%m-%d") 
 | 
			
		||||
        LOG+=" - $(git log -1 --pretty=%B)"
 | 
			
		||||
        echo "$LOG" | cat - CHANGED  2>/dev/null >> temp || true  && mv temp CHANGED
 | 
			
		||||
    - name: git commit back
 | 
			
		||||
      run: |
 | 
			
		||||
        git config --global user.email "action@github.com"
 | 
			
		||||
        git config --local user.name "GitHub Action"
 | 
			
		||||
        git add  CHANGED ${{env.CONTROLS_FILENAME}}  || true
 | 
			
		||||
        git log -1 --name-only --pretty=format: | grep -Eo '[0-9]{2}_.*.pm$' && git commit CHANGED ${{env.CONTROLS_FILENAME}}  -m "Automatic updated controls and CHANGED" || true
 | 
			
		||||
    - name: git push
 | 
			
		||||
      uses: ad-m/github-push-action@v0.6.0
 | 
			
		||||
      with:
 | 
			
		||||
        github_token: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        branch: ${{ steps.extract_branch.outputs.branch }}
 | 
			
		||||
#  test:
 | 
			
		||||
#    runs-on: ubuntu-latest
 | 
			
		||||
#    if: github.event_name == 'push'
 | 
			
		||||
#    strategy:
 | 
			
		||||
#      matrix:
 | 
			
		||||
#        os: ['ubuntu-latest']
 | 
			
		||||
#        perl: [ '5.22', '5.28', '5.30', '5.32' ]
 | 
			
		||||
#
 | 
			
		||||
#    name: Perl ${{ matrix.perl }} on ${{ matrix.os }}
 | 
			
		||||
#    steps:
 | 
			
		||||
#    - uses: actions/checkout@v3
 | 
			
		||||
#    - uses: shogo82148/actions-setup-perl@v1.18.0
 | 
			
		||||
#      with:
 | 
			
		||||
#        perl-version: ${{ matrix.perl }}
 | 
			
		||||
#        install-modules-with: cpanm
 | 
			
		||||
#        install-modules-args: --notest
 | 
			
		||||
#    - name: install fhem via deb package
 | 
			
		||||
#      run: |
 | 
			
		||||
#        wget -qO - http://debian.fhem.de/archive.key | sudo apt-key add -
 | 
			
		||||
#        echo "deb http://debian.fhem.de/nightly/ /" | sudo tee -a /etc/apt/sources.list
 | 
			
		||||
#        sudo apt-get update -qq
 | 
			
		||||
#        sudo apt-get install fhem -y
 | 
			
		||||
#        sudo systemctl stop fhem
 | 
			
		||||
#        sudo chown -R --reference=README.md /opt/fhem
 | 
			
		||||
##    - name: run prove on perl modules (testscripts)
 | 
			
		||||
##      run: prove --exec 'perl -MDevel::Cover=-silent,1 -I FHEM ' -I FHEM -r -vv t/FHEM/<packagename>
 | 
			
		||||
##    - uses: codecov/codecov-action@v1
 | 
			
		||||
##      with:
 | 
			
		||||
##        token: ${{ secrets.CODECOV_TOKEN }}
 | 
			
		||||
##        file: ./cover_db/clover.xml
 | 
			
		||||
##        flags: unittests,perl,modules
 | 
			
		||||
##        name: perl modules (testscripts) ${{ matrix.perl }}
 | 
			
		||||
#    - name: run prove fhem testsuite ${{ matrix.perl }} on modules
 | 
			
		||||
#      run: |
 | 
			
		||||
#        cp -r FHEM/* ${FHEM_DIR}/FHEM/
 | 
			
		||||
#        cd ${FHEM_DIR}
 | 
			
		||||
#        prove --exec 'perl -MDevel::Cover=-silent,1 fhem.pl -t' -I FHEM -r -vv ${GITHUB_WORKSPACE}/t/FHEM/98_Matrix/[0-9][0-9]_*/
 | 
			
		||||
#        sleep 3
 | 
			
		||||
#        cp -R /opt/fhem/cover_db ${GITHUB_WORKSPACE}/
 | 
			
		||||
#        ls -l ${GITHUB_WORKSPACE}
 | 
			
		||||
#      env:
 | 
			
		||||
#        FHEM_DIR: /opt/fhem
 | 
			
		||||
#    - name: Create clover report  
 | 
			
		||||
#      run: cover -report clover
 | 
			
		||||
##    - uses: codecov/codecov-action@v1
 | 
			
		||||
##      with:
 | 
			
		||||
##        token: ${{ secrets.CODECOV_TOKEN }}
 | 
			
		||||
##        file: ./cover_db/clover.xml
 | 
			
		||||
##        flags: unittests,fhem,modules
 | 
			
		||||
##        name: fhem (testscripts) ${{ matrix.perl }}
 | 
			
		||||
  
 | 
			
		||||
							
								
								
									
										34
									
								
								.github/workflows/perlCritic.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								.github/workflows/perlCritic.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,34 +0,0 @@
 | 
			
		||||
name: Perlcritic check
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    types: [opened, synchronize]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  critic:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    if: github.event_name == 'pull_request'
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Checkout repository
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
    - uses: shogo82148/actions-setup-perl@v1.18.0
 | 
			
		||||
      with:
 | 
			
		||||
        perl-version: 5.32
 | 
			
		||||
        install-modules-with: cpanm
 | 
			
		||||
        install-modules: Perl::Critic Task::PerlCriticAllPolicies 
 | 
			
		||||
        install-modules-args: --notest
 | 
			
		||||
    - uses: reviewdog/action-setup@v1
 | 
			
		||||
      with:
 | 
			
		||||
        reviewdog_version: latest # Optional. [latest,nightly,v.X.Y.Z]
 | 
			
		||||
    - name: run perlcritic and send report via reviewdog
 | 
			
		||||
      env:
 | 
			
		||||
        REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
      run: |
 | 
			
		||||
        (perlcritic --verbose 1 --profile .perlcritic ./FHEM; perlcritic --verbose 1 --profile .perlcritic ./lib; ) | \
 | 
			
		||||
          reviewdog -efm '%f:%l:%c:%m' \
 | 
			
		||||
            -name="perlcritic" \
 | 
			
		||||
            -reporter="github-pr-check" \
 | 
			
		||||
            -filter-mode="added" \
 | 
			
		||||
            -fail-on-error="false" \
 | 
			
		||||
            -level="warning" \
 | 
			
		||||
							
								
								
									
										37
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,37 +0,0 @@
 | 
			
		||||
!Build/
 | 
			
		||||
.last_cover_stats
 | 
			
		||||
/META.yml
 | 
			
		||||
/META.json
 | 
			
		||||
/MYMETA.*
 | 
			
		||||
*.o
 | 
			
		||||
*.pm.tdy
 | 
			
		||||
*.bs
 | 
			
		||||
.vscode/
 | 
			
		||||
.gitignore
 | 
			
		||||
 | 
			
		||||
# Devel::Cover
 | 
			
		||||
cover_db/
 | 
			
		||||
 | 
			
		||||
# Devel::NYTProf
 | 
			
		||||
nytprof.out
 | 
			
		||||
 | 
			
		||||
# Dizt::Zilla
 | 
			
		||||
/.build/
 | 
			
		||||
 | 
			
		||||
# Module::Build
 | 
			
		||||
_build/
 | 
			
		||||
Build
 | 
			
		||||
Build.bat
 | 
			
		||||
 | 
			
		||||
# Module::Install
 | 
			
		||||
inc/
 | 
			
		||||
 | 
			
		||||
# ExtUtils::MakeMaker
 | 
			
		||||
/blib/
 | 
			
		||||
/_eumm/
 | 
			
		||||
/*.gz
 | 
			
		||||
/Makefile
 | 
			
		||||
/Makefile.old
 | 
			
		||||
/MANIFEST.bak
 | 
			
		||||
/pm_to_blib
 | 
			
		||||
/*.zip
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
severity        = 5
 | 
			
		||||
color           = 1
 | 
			
		||||
@@ -370,7 +370,7 @@ __END__
 | 
			
		||||
      "abstract": "Stellt einen Matrix-Chatbot bereit"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "version": "v0.15.3",
 | 
			
		||||
  "version": "v0.15.4",
 | 
			
		||||
  "author": [
 | 
			
		||||
    "Manfred Bielemeier"
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								README.md
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
# FHEM/98_Matrix.pm
 | 
			
		||||
# FHEM/70_Matrix.pm
 | 
			
		||||
## Vorwort
 | 
			
		||||
Ich habe seit gefühlten Ewigkeiten FHEM im Einsatz und jetzt neu auch Matrix, was bei mir Telegram als Meldungszentrale ablösen soll. Ich bin dabei einen Bot als FHEM-Modul aufzubauen der sowohl Meldungen absetzen kann als auch Befehle empfangen kann.
 | 
			
		||||
 | 
			
		||||
@@ -32,51 +32,4 @@ https://wiki.fhem.de/wiki/DevelopmentModuleIntro
 | 
			
		||||
 | 
			
		||||
### lib/
 | 
			
		||||
 | 
			
		||||
Put any libs(pure perl modules) you provide in a own package (not main) create in here
 | 
			
		||||
 | 
			
		||||
## automated Testing
 | 
			
		||||
 | 
			
		||||
### t/FHEM/98_Matrix/*
 | 
			
		||||
 | 
			
		||||
Unittests for the fhem mdoule run via github actions if needed you have to write them into folder t/FHEM/<modulename>/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### t/FHEM/<packagename>/*
 | 
			
		||||
 | 
			
		||||
Unittests for the perl mdoule run via github actions if needed you have to write them into folder t/FHEM/<PACKAGENAME>/
 | 
			
		||||
Unittests (run prove on perl modules (testscripts)) needs to be enabled in the fhem_test.yml workflow
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
    - name: run prove on perl modules (testscripts)
 | 
			
		||||
      run: prove --exec 'perl -MDevel::Cover=-silent,1 -I FHEM ' -I FHEM -r -vv t/FHEM/<packagename>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### cpanfile
 | 
			
		||||
 | 
			
		||||
Cpan modules needed for running your module and your tests, they will be installed after perl is set up and running 
 | 
			
		||||
 | 
			
		||||
### .github/workflows/update.yml
 | 
			
		||||
 | 
			
		||||
This is a github action workflow which creates a controls file which is needed for fhem update command.
 | 
			
		||||
You are then able to install your new module 
 | 
			
		||||
`update all https://raw.githubusercontent.com/fhem/<reponame>/<branch>/controls_<reponame>.txt`
 | 
			
		||||
 | 
			
		||||
### .github/workflows/fhem_test.yml
 | 
			
		||||
 | 
			
		||||
This is a github action workflow which runs all your tests in t/xx_<Module> folder with different perl versions.
 | 
			
		||||
 | 
			
		||||
### .github/dependabot.yml
 | 
			
		||||
 | 
			
		||||
Dependabot will check if there are new versions form used actions you are using in your worflows and inform you.
 | 
			
		||||
 | 
			
		||||
### Code coverage
 | 
			
		||||
You can use codecov (https://about.codecov.io/)  to monitor your test code coveage.
 | 
			
		||||
Simply enable the coverage action an provide a token vom codecov.io via github secrets
 | 
			
		||||
 | 
			
		||||
    - uses: codecov/codecov-action@v1
 | 
			
		||||
      with:
 | 
			
		||||
        token: ${{ secrets.CODECOV_TOKEN }}
 | 
			
		||||
        file: ./cover_db/clover.xml
 | 
			
		||||
        flags: unittests,fhem,modules
 | 
			
		||||
        name: fhem (testscripts) ${{ matrix.perl }}
 | 
			
		||||
 | 
			
		||||
Put any libs(pure perl modules) you provide in a own package (not main) create in here
 | 
			
		||||
							
								
								
									
										2
									
								
								controls_Matrix.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								controls_Matrix.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
UPD 2023-01-04_18:24:55 16959 FHEM/70_Matrix.pm
 | 
			
		||||
UPD 2023-01-04_17:59:18 51844 lib/FHEM/Devices/Matrix/Client.pm
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
UPD 2022-11-24_23:21:11 16031  FHEM/98_Matrix.pm
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
UPD 2022-01-07_00:05:45 4688   FHEM/98_Matrix.pm
 | 
			
		||||
							
								
								
									
										4
									
								
								cpanfile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								cpanfile
									
									
									
									
									
								
							@@ -1,4 +0,0 @@
 | 
			
		||||
requires 'Test2::Suite';
 | 
			
		||||
requires 'Devel::Cover';
 | 
			
		||||
requires 'Devel::Cover::Report::Clover';
 | 
			
		||||
recommends 'Pod::Usage';
 | 
			
		||||
@@ -1,20 +1,20 @@
 | 
			
		||||
parseParams#!/usr/bin/perl -w
 | 
			
		||||
#!/usr/bin/perl -w
 | 
			
		||||
 | 
			
		||||
use File::Basename;
 | 
			
		||||
use POSIX qw(strftime);
 | 
			
		||||
use strict;
 | 
			
		||||
 | 
			
		||||
my @filenames = ( 'FHEM/98_Matrix.pm',
 | 
			
		||||
                  'lib/FHEM/Devices/Matrix.pm'   
 | 
			
		||||
                );
 | 
			
		||||
my @filenames = (   'FHEM/70_Matrix.pm',
 | 
			
		||||
		    'lib/FHEM/Devices/Matrix/Client.pm',
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
my $controlsfile = 'controls_Matrix.txt';
 | 
			
		||||
my $controlsfile    = 'controls_Matrix.txt';
 | 
			
		||||
 | 
			
		||||
open(FH, ">$controlsfile") || return("Can't open $controlsfile: $!");
 | 
			
		||||
 | 
			
		||||
for my  $filename (@filenames) {
 | 
			
		||||
    my @statOutput = stat($filename);
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
    if (scalar @statOutput != 13) {
 | 
			
		||||
        printf 'error: stat has unexpected return value for ' . $filename . "\n";
 | 
			
		||||
        next;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
 | 
			
		||||
use Test2::V0;
 | 
			
		||||
use Test2::Tools::Compare qw{is U};
 | 
			
		||||
 | 
			
		||||
InternalTimer(time()+1, sub() {
 | 
			
		||||
    my %hash;
 | 
			
		||||
    $hash{TEMPORARY} = 1;
 | 
			
		||||
    $hash{NAME}  = q{dummyMatrix};
 | 
			
		||||
    $hash{TYPE}  = q{Matrix server user};
 | 
			
		||||
    $hash{STAE}  = q{???};
 | 
			
		||||
 | 
			
		||||
    subtest "Matrix Test checking define" => sub {
 | 
			
		||||
        $hash{DEF}   = "pass";
 | 
			
		||||
        plan(2);
 | 
			
		||||
        my $ret = Matrix_Define(\%hash,qq{$hash{NAME} $hash{TYPE}});
 | 
			
		||||
        like ($ret, qr/too few parameters: define <name> Matrix <greet>/, 'check error message Matrix_Define');
 | 
			
		||||
 | 
			
		||||
        $ret = Matrix_Define(\%hash,qq{$hash{NAME} $hash{TYPE} $hash{DEF}});
 | 
			
		||||
        is ($ret, U(), 'check returnvalue Matrix_Define');
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    done_testing();
 | 
			
		||||
    exit(0);
 | 
			
		||||
 | 
			
		||||
}, 0);
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
define dummyMatrix Matrix matrix.web05.de
 | 
			
		||||
		Reference in New Issue
	
	Block a user