Skip to content

Instantly share code, notes, and snippets.

View SSmale's full-sized avatar

Simon Smale SSmale

View GitHub Profile
@SSmale
SSmale / prepare-commit-msg.sh
Created January 3, 2024 18:42 — forked from bartoszmajsak/prepare-commit-msg.sh
How to automatically prepend git commit with a branch name
#!/bin/bash
# This way you can customize which branches should be skipped when
# prepending commit message.
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(master develop test)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
@SSmale
SSmale / .git_hooks_pre-commit
Created January 3, 2024 18:41 — forked from leucos/.git_hooks_pre-commit
ansible-vault pre-commit hook
#!/bin/sh
#
# Pre-commit hook that verifies if all files containing 'vault' in the name
# are encrypted.
# If not, commit will fail with an error message
#
# Original author: @ralovely
# https://www.reinteractive.net/posts/167-ansible-real-life-good-practices
#
# File should be .git/hooks/pre-commit and executable
@SSmale
SSmale / content.md
Created December 9, 2023 21:32 — forked from Mishco/content.md
Setup HashiCorp Vault on docker

Setup HashiCorp Vault on docker

Vault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing. Vault is primarily used in production environments to manage secrets. Vault is a complex system that has many different pieces. There is a clear separation of components that are inside or outside of the security barrier. Only the storage backend and the HTTP API are outside, all other components are inside the barrier.

Vault_architecture

Figure 1: Architecture of Vault and Spring App (Click to enlarge)

The storage backend is untrusted and is used to durably store encrypted data. When the Vault server is started, it must be provided with a storage backend so that data is available across restarts. The HTTP API similarly must be started by the Vault server on start so that clients can interact with it.

<?php
$page_title = "Stock Manager | Add a Product";
$page_topper = "Please Fill in all the Fields to Add a New Product";
include("inc/template/header.inc.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST'&&isset($_POST['add_parent'])){
if(!empty($_POST['Name'])){
$name = safe_data($_POST['Name'],$dbc);
if (strlen($name)>45){
@SSmale
SSmale / widget.css
Created October 12, 2020 00:55 — forked from Coocla33/widget.css
Information Bar Version 1.1
@import url('https://fonts.googleapis.com/css2?family={font_name}&display=swap');
:root {
--background-color: {{background_color}};
--accent-color: {{accent_color}};
--text-color: {{text_color}};
--text-accent-color: {{text_accent_color}};
--icon-color: {{icon_color}};
--spacer-width: {{spacer_width}}px;
--spacer-margin: {{spacer_margin}}px;
0eNrtXe1uI7mVfRXDP/aX3Vv8JhubBSaTLBIE2ASL/bNYDAzZru4WRpYMSXbSGfQD5EHyYnmSlCzJrpZYVeeQnEwXUPNjulu2TrF47zkkLy8vf7q8XTzVj+v5cnv5/qfL+d1qubl8//8/XW7mH5ezxe6z7efH+vL95XxbP1xeXS5nD7t/3dXL7Xr+4eljffnl6nK+vK//cvlefLka/OLTeracPz1cS2Va35TUN33rmwr45n19N7+v19d3q4fb+XK2Xa1bAPrLD1eXzdvMt/N6/+ov//h8s3x6uK3XzVvFXvrq8nG1ab6yWu6e2sBcS311+bn5UzTvcrlunvjYbvTjenVXbzbz5cfLXYNPHiFfH7F5ut1sZy+4kUdU78zxIe/MlwiQwtoqfHpb9esjts3vbx5X6+31bb3Yxh7T7pL7efOg/U91BNYQsDIOayOwloBVOKwjYCsc1hOwAocNOKzHUXcvhsIGAlbgsJaAlTisI2DfGPfU6Mn643rV/NkFbDqAr466tXraPj5tY7QTGtMI9SoRIi4RwjAtlkMtni+7GoxTj2CIYJhHwOLMI8RH4MQj2ipx3mkCFacdoZMSZx3BZalgVEOg4iMboZISH9gI2ZE4uZjxR+LsIhRd4uRihnZJsIugl6oIfeycMwCKrgSk6EIPKbqSTIttsqIrnHaCYIjCeScIiiiceIJwZoUzTxLMUzjzJOPMxLhGUE/h1JPEaKHfqDdfbur1tvkwMiU5erD4GlHGEInJpHRx3NhqRcsE3ArAVdxiMySs3zTUyZLoZGLt9uq8IqZk2iYgVVEkB71lFX/LqHN6bm2dYpqANFpYvNGGWKMJg/u/EQm4gP8bmRBdQNqrEnCR9uq+IFMsdPGuozcao96tGrdaLW5u60+z53nz/eZLB9Sb5mf3L0ib3acf5uvN9oaLtO0ie9vZLsy3k9mmlY+z9Usr31/+429/b762n6mcoz7P19un5pO32crLb1x/t0d9/Nw07mm5vfmwXj3c7CcP7z/MFpv6y/6
START RequestId: a8071d62-5df1-11e8-a54a-71285a28c122 Version: $LATEST
// this is the response from firebase after my array function
2018-05-22T18:55:16.874Z a8071d62-5df1-11e8-a54a-71285a28c122
[
{ name: 'Dan Green', coffee: 'blue', tea: 'black' },
{ name: 'Dan thomas', coffee: 'yellow', tea: 'silver' },
{ name: 'kayleigh', tea: 'Black like her soul' },
{ name: 'tim', coffee: 'brown', tea: 'red' }
]
// the response it will return
import firebase from "@/store/firebase";
let ticketsDB = firebase.database.ref("tickets");
export const state = {
tickets: []
};
export const getters = {
getAllTickets: function(state) {
import { expect } from "chai";
// import { getters } from "@/store/modules/tickets";
import { getters } from "../src/store/modules/tickets/index";
describe("getters", () => {
it("should get all tickets", () => {
const state = {
tickets: [
{
id: "-L19YK2qXcThgu3lt43_",
@SSmale
SSmale / form.html
Last active October 15, 2017 10:48
formspree form for portfolio website
<form action="https://formspree.io/[email protected]" method="POST">
<input type="text" name="name" placeholder="Your name">
<input type="email" name="_replyto" placeholder="Your email">
<textarea name="comment" cols="30" rows="10" placeholder="Your message"></textarea>
<input type="hidden" name="_next" value="/index.html?t=true" />
<input type="submit" value="Send">
</form>
var split = location.search.replace('?', '').split('=')