Skip to content

Instantly share code, notes, and snippets.

View mastier's full-sized avatar
🤯
exploding ideas

Bartosz "mastier" Woronicz mastier

🤯
exploding ideas
View GitHub Profile
@mastier
mastier / givemeironthrone.sh
Created April 14, 2016 12:15
Root access to shell having script with sudo privileges and ability to modify it
#!/usr/bin/env bash
# This simple script allows you to achieve root shell when you already have access to script
# prerequisites:
# 1. access to write the script
# 2. able to run the scripts sudo as root
ELEVATED_BINARY="$1"
TMPFILE=$( mktemp )
ORIGFILE=$( mktemp )
@mastier
mastier / jenkins_fix_scm.groovy
Last active March 21, 2016 23:31
Fix Subversion plugin configuration in Jenkins in all jobs
// Modify SVN related in memory objects
for(item in Hudson.instance.items) {
def scm = item.scm
if((scm instanceof org.jenkinsci.plugins.multiplescms.MultiSCM) ) {
println('##########')
for(s in scm.scms) {
if( s instanceof hudson.scm.SubversionSCM) {
// Change updater
s.workspaceUpdater = new hudson.scm.subversion.UpdateUpdater()
println(s.workspaceUpdater.dump())
@mastier
mastier / jenkins_subversion-plugin-2.5.7-maven.log
Last active February 26, 2016 15:40
Jenkins subversion-plugin maven log
[INFO] Scanning for projects...
[WARNING] The POM for org.jenkins-ci.tools:maven-hpi-plugin:jar:1.106 is missing, no dependency information available
[WARNING] Failed to build parent project for org.jenkins-ci.plugins:subversion:hpi:2.5.7
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Jenkins Subversion Plug-in 2.5.7
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-hpi-plugin:1.96:validate (default-validate) @ subversion ---
[INFO]
@mastier
mastier / get_linked_files.py
Last active February 18, 2016 22:11
Get the list of used files starting from given index.html
from bs4 import BeautifoulSoup
def get_linked_files(filename, visited=set()):
visited.add(filename)
try:
soup = BeautifulSoup(open(filename).read(), 'html.parser')
tovisit = set([ x.attrs['href'] for x in soup.find_all('a')])
imgs = set([ x.attrs['src'] for x in soup.find_all('img')])
scripts = set([ x.attrs.get('src','') for x in soup.find_all('script')])
links = set([ x.attrs['href'] for x in soup.find_all('link')])
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
def run_cmd(*args):
process = subprocess.Popen(
args,
stdout=subprocess.PIPE,
# useful way to flatten dictionary representing i.e. path to file and content
# now fixed in case of running it again
def flatten_dict(d,path=(),paths=None, sep='/'):
if paths==None: paths=[]
if isinstance(d,dict):
for k,v in d.items():
flatten_dict(v,path+(k,),paths)
return paths
else: