Skip to content

Instantly share code, notes, and snippets.

View TuxCoding's full-sized avatar

Alex (TuxCoding) TuxCoding

  • [::1]
View GitHub Profile
@TuxCoding
TuxCoding / walk_folder.cpp
Created December 9, 2016 13:29
Walks recursively through all folders starting with the given folder
void scanFolder(const char *dirName) {
if (DIR *pDIR = opendir(dirName)) {
while (auto entry = readdir(pDIR)) {
char *fileName = entry->d_name;
if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) {
if (isFolder(fileName)) {
//found another folder scan deeper
scanFolder(fileVector, fileName);
} else {
//found a file
@TuxCoding
TuxCoding / is_folder.cpp
Created December 9, 2016 13:26
Platform independent isFolder check
/**
* Platform independent isFolder check
*
* @param filename
* @return
*/
bool isFolder(char *filename) {
struct stat info;
if (stat(filename, &info) != 0)
@TuxCoding
TuxCoding / file_size.cpp
Created December 9, 2016 13:25
Gets the size of a file
std::ifstream::pos_type filesize(char *filename) {
std::ifstream in(filename, std::ifstream::ate | std::ifstream::binary);
return in.tellg();
}
@TuxCoding
TuxCoding / CMakeLists.txt
Created December 9, 2016 13:24
Simple cmake script for c/c++ programs
cmake_minimum_required(VERSION 3.6)
project(FerrisFileIndexer)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
set(SOURCE_FILES main.cpp)
SET(BUILD_SHARED_LIBRARIES OFF)
# Link the libraries static to make a executable which can run on non-dev machines
SET(CMAKE_EXE_LINKER_FLAGS "-static")
@TuxCoding
TuxCoding / .travis.yml
Created December 9, 2016 13:23
Travis template for Go
# Use https://travis-ci.org/ for automatic testing
language: go
go:
# Use only the latest version
- tip
install:
# Resolve dependencies
- go get -u "NAME"
@TuxCoding
TuxCoding / ColorPluginAppender.java
Created December 9, 2016 13:21
Make the logging output colorful based on the logging name and level with use of https://github.com/fusesource/jansi and http://logging.apache.org/log4j/2.x/
import com.google.common.collect.ImmutableSet;
import java.util.Set;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.Ansi.Attribute;
@TuxCoding
TuxCoding / .gitignore
Created December 9, 2016 13:16
Java - Ignore
# Eclipse stuff
/.classpath
/.project
/.settings
# netbeans
/nbproject
nb-configuration.xml
# maven
@TuxCoding
TuxCoding / MinecraftSkin.php
Created December 9, 2016 13:15
Decode and encodes the properties of a MinecraftSkin fetched from the Mojang API
<?php
/**
* App\Skin
*
* @property integer $id
* @property string $profile_id
* @property string $profile_name
* @property string $skin_url
* @property string $cape_url
* @property boolean $slim_model
@TuxCoding
TuxCoding / PingDomain.php
Created December 9, 2016 13:08
Ping a certain domain and return the response time in milliseconds.
<?php
class PingDomain {
protected function pingDomain($domain, $port) {
//https://stackoverflow.com/questions/9841635/how-to-ping-a-server-port-with-php
$starttime = microtime(true);
$file = fsockopen($domain, $port, $errno, $errstr, 1);
$stoptime = microtime(true);
$status = 0;
@TuxCoding
TuxCoding / MinecraftSRV.php
Created December 9, 2016 13:07
Resolve a domain minecraft SRV record to it's real IP.
<?php
class MinecraftSRV {
protected function resolveMinecraftSRV(&$host, &$port) {
if (ip2long($host) !== FALSE) {
//server address is an ip - we cannot resolve ip
return;
}
$result = dns_get_record('_minecraft._tcp.' . $host, DNS_SRV);
if (count($result) > 0) {