Я использую Jekyll для постинга в свой блог. Это генератор для статических страниц, которые можно размещать на Github Pages

Мне показалось, что я трачу слишком много времени на подготовку постов. Хочется, одной командой создать файл, записать мысли и одной командой отправить в блог.

Я написал вот такую страшненькую программку:

package ru.yamakarov.jekyll;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;

public class Main {

    public static void main(String[] args) {
        if (args.length < 2) {
            System.out.println("No command do nothing\n" +
                    "possible options:\n" +
                    "-n name  Creates new post \n");
        }
        String command = args[0];
        if ("-n".equals(command)) {
            String name = args[1];
            Date date = new Date(System.currentTimeMillis());
            String template = "---\n" +
                    "layout: post\n" +
                    "title:  \"\"\n" +
                    "date:   " + new SimpleDateFormat("yyyy-MM-dd hh:mm").format(date) + "\n" +
                    "categories: \n" +
                    "---\n\n";
            String fileName = new SimpleDateFormat("yyyy-MM-dd").format(date) +
                    "-" + name + ".markdown";
            Path path = FileSystems.getDefault().getPath("_posts",
                    fileName);
            try {
                if (!Files.exists(path)) {
                    Files.createFile(path);
                }
                Files.write(path, Collections.singletonList(template));
            } catch (IOException e) {
                System.out.println("Exception writing file");
                e.printStackTrace();
            }
        }
    }
}

Этот файл я создал с её помощью. Я знаю только Java и выбрал её для решения задачи автоматизации. Я не уверен, что она долго проживет, потому что наверняка есть более простые решения. Но она вскрыла куча проблем, которые я постараюсь для себя раскрыть в будущем:

  • Я знаю есть библиотека для работы с консольными приложениями
  • Есть правила написания манов для Linux
  • API Files из Java 1.7 прошло полностью мимо меня, я ни разу им не пользовался
  • Логи это удобно, и без системы сборки собирать проекты это боль
  • Я совсем не знаю Maven и Gradle и это боль начинать проект

Я засек время потраченное на написание программы 34 минуты. Мне надо сделать около 50 постов, чтобы оно окупилось, и надо чтобы в программе не нашлось новых багов.

Update: продолжение про Kotlin