For educational reasons I've decided to create my own CA. Here is what I learned.
Lets get some context first.
/* Compile with: g++ -Wall –Werror -o shell shell.c */ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <ctype.h> | |
#include <unistd.h> | |
#include <sys/types.h> | |
#include <sys/wait.h> |
//Regular Expressions List | |
//Short Tutorial | |
\ // the escape character - used to find an instance of a metacharacter like a period, brackets, etc. | |
. // match any character except newline | |
x // match any instance of x | |
^x // match any character except x | |
[x] // match any instance of x in the bracketed range - [abxyz] will match any instance of a, b, x, y, or z | |
| // an OR operator - [x|y] will match an instance of x or y |
requirements_file = 'base.pip' | |
requirements = open(requirements_file, 'r') | |
content = requirements.read().splitlines() | |
content = list(set(content)) | |
content.sort(key=lambda y: y.lower()) | |
content = '\n'.join(content) | |
file = open('sorted_'+requirements_file, 'w') | |
file.write(content) |
#!/usr/bin/python3 | |
# -- Content-Encoding: UTF-8 -- | |
""" | |
Small script which is able to look for and install packages targeting another | |
platform, using pip. | |
This simplifies the creation of distribution files for different platform. | |
Only works for Python 3.4 downloads. |
{% macro render_pagination(pagination, endpoint) %} | |
<ul class="pagination"> | |
{% if pagination.has_prev %} | |
<li> | |
<a href="{{ url_for(endpoint, page=pagination.prev_num) }}" aria-label="Previous"> | |
<span aria-hidden="true">«</span> | |
</a> | |
</li> |
# Fix user and directory permissions: | |
find . -type f -print0 | sudo xargs -0 chmod 664 | |
find . -type d -print0 | sudo xargs -0 chmod 775 | |
# Copy user permissions to group permissions: | |
chmod -R g=u . | |
# Make new files inherit the group of the container directory | |
chmod g+s <directory> |