Implementing a basic plugin architecture shouldn't be a complicated task. The solution described here is working but you still have to import every plugin (inheriting from the base class).
This is my solution:
$ tree
# docker build -t my-debrepo -f Dockerfile.deb . | |
# Bulunduğu dizinde latest ve packages adından iki dizin oluşturulur. | |
# latest en güncel paketim tutulduğu dizin jenkins tarafımndan otomatik kullanılacaktır. | |
# packages ise tüm deb paketlerinin tutulduğu dizin. | |
# docker run --privileged -dit --name debrepo -p 8080:80 -v $(pwd)/latest:/usr/local/apache2/htdocs/latest/debs/amd64 -v $(pwd)/packages:/usr/local/apache2/htdocs/debs/amd64 -v "$(pwd)"/httpd.conf:/usr/local/apache2/httpdconf my-debrepo | |
# docker exec -it debianrepo nohup bash -c "/usr/local/apache2/htdocs/updaterepo.sh &" && sleep 4 ile repo'yu otomatik scan edecek script çalıştırılır. | |
FROM httpd:2.4 | |
RUN echo "root:root" | chpasswd | |
RUN apt-get update && \ |
Implementing a basic plugin architecture shouldn't be a complicated task. The solution described here is working but you still have to import every plugin (inheriting from the base class).
This is my solution:
$ tree
#!/usr/bin/env python | |
""" | |
Written by Nathan Prziborowski | |
Github: https://github.com/prziborowski | |
This code is released under the terms of the Apache 2 | |
http://www.apache.org/licenses/LICENSE-2.0.html | |
The property collector can be used to fetch a subset of properties | |
for a large amount of objects with fewer round trips that iterating. | |
This sample shows how to use the TraversalSpec to get properties | |
of another object without multiple calls. |
#!/usr/bin/env perl | |
# | |
# surveilleur de logins sasl: compte les IP's de provenance d'un meme login | |
# | |
# needs geoip2 perl module and GeoLite2-Country.mmdb (use geoipupdate) | |
# | |
# run by cron on a daily-rotated maillog: | |
# 2 */1 * * * root /usr/local/admin/ssi/surveille-spam.pl /data/logs/serveurs/maillog | |
# 1 0 * * * root /usr/local/admin/ssi/surveille-spam.pl /data/logs/serveurs/maillog.0 | |
use strict; |
<?php | |
/** | |
* Simple method to use the API from https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/ | |
* Written by Jim Westergren and released to public domain | |
* @return int count | |
*/ | |
function checkPawnedPasswords(string $password) : int | |
{ | |
$sha1 = strtoupper(sha1($password)); | |
$data = file_get_contents('https://api.pwnedpasswords.com/range/'.substr($sha1, 0, 5)); |
#!/bin/bash | |
# Original: | |
# https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity | |
echo -n Password: | |
read -s password | |
echo | |
hash="$(echo -n $password | openssl dgst -sha1 -binary | xxd -p)" | |
upperCase="$(echo $hash | tr '[a-z]' '[A-Z]')" |
This is a story about how I tried to use Go for scripting. In this story, I’ll discuss the need for a Go script, how we would expect it to behave and the possible implementations; During the discussion I’ll deep dive to scripts, shells, and shebangs. Finally, we’ll discuss solutions that will make Go scripts work.
While python and bash are popular scripting languages, C, C++ and Java are not used for scripts at all, and some languages are somewhere in between.
#!/bin/bash | |
# | |
# ts3server-bot.sh | |
# | |
# Teamspeak 3 AFK bot, move clients to the specified channel when they are muted | |
# for more than the specified period of time and move them back when they unmute | |
# themself. | |
# | |
# Copyright 2016, Malobre. | |
# |
#!/bin/bash | |
# | |
# Stolen from https://stuckinadoloop.wordpress.com/2011/04/14/script-to-convert-openldap-schema-files-to-ldif-format/ | |
SCHEMAD=/etc/openldap/schema | |
SCHEMAS='dhcp.schema' | |
tmpd=`mktemp -d` | |
pushd ${tmpd} >>/dev/null |