Backup time: bitbucket backup script

Git is decentralised version control system but let’s face it – most likely we use single remote repository. Most likely it’s github or bitbucket.

Some people already have learnt the hard way that backups are necessary even for the thing we believe will never break, because, you know, nothing more permanent than temporary.

Recently I was reviewing my backups of important services and noticed that I don’t really have a repeatable automated way to archive repositories on Bitbucket. Scaring myself of it I immediately rushed to write a script which does so.

So, requirements for the bitbucket backup script:

  • Must work on Linux(or may be even macos) without any extra dependencies. It must work using only bash + git + tar
  • Created archives should be bz2ipped
  • Backup script must not have write access to the repositories
  • It must include all repositories/teams I was contributing to

Read more

android kotlin gradle.build

Here skeleton of gradle.build script for madness people who try to code Android apps using kotlin language.

This gradle script uses another structure of subdirectories, more simple I would say. There is no useless “deep” folders like src/main/java, src/main/assets, etc..


buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.10.770'
}
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'idea'

repositories {
mavenCentral()
}

dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.10.770'
}

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
minSdkVersion 15
targetSdkVersion 21
}

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['java', 'kotlin']
aidl.srcDirs = ['java']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}

Read more

Apache: быстрое добавление сайтов

Набросал простой скрипт, для удобного создания VirtualHost в debian.

Наверное тоже надоело лесть, создавать vhost по существующему, править пути, перезапускать сервер и так много раз и по кругу? А ещё не хватало опечататься?

Предлагаю такое решение: скрипт, делающий всю эту рутинную работу. Принимает только 1 аргумент – имя сайта и сам создаёт скелет и VirtualHost по шаблону.

В каталоге с сайтами создаётся папка с указанным именем. В ней – ещё 2 папки – log и www – для логов и сайта соответственно. А так же vhost – файл с описанием виртуального хоста по шаблону, лежащему в папке с сайтами. На этот файл создаётся симлинк в стандартное для дебиановского апача место – /etc/apache2/sites-avalable. После установки прав на созданные папки происходит вызов a2ensite и перезапуск апача. На скриншоте выше – кусочек такого скелета который получился после работы скрипта – из наутилуса

Read more