//! `koh init` — write the `.koh` file and a default ignore list. module cli import json import os import src.snapshot import src.storage pub fn cmd_init(raw []string) int { args := parse('init', raw, Options{ flags: ['json'] }) or { return usage_error(err.msg()) } root := os.getwd() store := storage.create(root) or { return refuse(args.json(), err.msg()) } store.close() ignore_path := os.join_path(root, snapshot.ignore_file) mut wrote_ignore := false if !os.exists(ignore_path) { os.write_file(ignore_path, snapshot.default_ignore) or { return refuse(args.json(), err.msg()) } wrote_ignore = true } if args.json() { emit_json(json.encode(InitJson{ repo: root ignore_created: wrote_ignore })) return 0 } ok('initialised koh in ${root}') if wrote_ignore { note('wrote ${snapshot.ignore_file} — edit it to suit the project') } return 0 } struct InitJson { repo string ignore_created bool }