Skip to content

Instantly share code, notes, and snippets.

View ashdavies's full-sized avatar

Ash Davies ashdavies

View GitHub Profile
@ashdavies
ashdavies / firefly-iii-backuper.sh
Created March 20, 2024 10:27 — forked from dawid-czarnecki/firefly-iii-backuper.sh
Script to backup Firefly III database, uploads and config files installed with docker-compose
#!/bin/bash
files_to_backup=(.env .db.env .fidi.env docker-compose.yml )
info() { echo -e "\\033[1;36m[INFO]\\033[0m \\033[36m$*\\033[0m" >&2; }
warn() { echo -e "\\033[1;33m[WARNING]\\033[0m \\033[33m$*\\033[0m" >&2; }
fatal() { echo -e "\\033[1;31m[FATAL]\\033[0m \\033[31m$*\\033[0m" >&2; exit 1; }
intro () {
echo " ====================================================="
#!/bin/sh
if test $# -lt 1; then
echo "usage: current SERIAL"
exit 1
fi
adb -s "$1" shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
#!/bin/sh
if test $# -lt 1; then
echo "usage: apk pattern target_directory"
exit 1
fi
DIR="${2:-$PWD}"
for ENTRY in $(adb shell pm list packages -f | grep $1); do
PACKAGE=$(echo $ENTRY | sed -n 's/package:\(.*\)=.*$/\1/p')
NAME=$(echo $ENTRY | sed -n 's/^.*apk=\(.*\).*$/\1/p')
package io.ashdavies.playground
import junit.framework.TestCase.assertEquals
import org.junit.Assert.assertThrows
import org.junit.Before
import org.mockito.Mockito
import org.mockito.kotlin.any
import org.mockito.kotlin.doAnswer
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
@ashdavies
ashdavies / gist:50609a347f0b8c8fd097940cbba0a3a5
Last active May 26, 2022 20:35
Stacktrace: Kotlin Desktop v1.2.0-alpha01-dev686
> Task :app:compileDebugKotlinAndroid
e: org.jetbrains.kotlin.util.KotlinFrontEndException: Exception while analyzing expression at (12,69) in ...
Attachments:
expression.kt
{ ... }
at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.logOrThrowException(ExpressionTypingVisitorDispatcher.java:253)
at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:224)
at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:164)
query Events {
repository(owner: "...", name: "...") {
events: object(expression: "HEAD:...") {
... on Tree {
entries {
data: object {
... on Blob {
oid
text
}
@ashdavies
ashdavies / CoroutineActivity
Last active March 26, 2020 21:37
Co'tines NavDirections consumption
class Activity : AppCompatActivity {
private val navController: NavController by lazy(NONE) { findNavController(R.id.host) }
private val viewModel: CoroutineViewModel by viewModels()
fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
viewModel
.navDirections
@ashdavies
ashdavies / apk.sh
Last active February 18, 2018 16:06
Save matching APK files from an Android device
#!/bin/sh
if test $# -lt 1; then
echo "usage: apk pattern target_directory"
exit 1
fi
DIR="${2:-$PWD}"
for ENTRY in $(adb shell pm list packages -f | grep $1); do
PACKAGE=$(echo $ENTRY | sed -n 's/package:\(.*\)=.*$/\1/p')
NAME=$(echo $ENTRY | sed -n 's/^.*apk=\(.*\).*$/\1/p')
@ashdavies
ashdavies / gifify.sh
Last active February 17, 2018 11:10
Export an optimised GIF from an MP4
#!/bin/sh
if [[ ${1:(-4)} != ".mp4" ]]; then
echo "Invalid input file $1"
exit 1
fi
palette="${1%.*}-palette.png"
filters="fps=25,scale=320:-1:flags=lanczos"
@ashdavies
ashdavies / dex.sh
Created January 30, 2016 15:27 — forked from JakeWharton/dex.sh
`classes.dex` method count helpers. Requires smali/baksmali from https://code.google.com/p/smali/ and dexdump from the build-tools in the Android SDK be on your PATH.
function dex-method-count() {
cat $1 | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'
}
function dex-method-count-by-package() {
dir=$(mktemp -d -t dex)
baksmali $1 -o $dir
for pkg in `find $dir/* -type d`; do
smali $pkg -o $pkg/classes.dex
count=$(dex-method-count $pkg/classes.dex)
name=$(echo ${pkg:(${#dir} + 1)} | tr '/' '.')