ソースを参照

Rewrite templating system

Use "meta templates" that ate actually Bash scripts.
Alois Mahdal 8 年 前
コミット
7742d07025

+ 0
- 6
dotfiles/gittum/bin/findcat ファイルの表示

@@ -1,6 +0,0 @@
1
-#!/bin/sh
2
-
3
-NAME=$1
4
-cat ".git_$NAME" 2>/dev/null \
5
- || cat ".git/gittum/$NAME" 2>/dev/null \
6
- || cat "$HOME/.gittum/default/$NAME" 2>/dev/null

+ 38
- 0
dotfiles/gittum/bin/metacm ファイルの表示

@@ -0,0 +1,38 @@
1
+#!/bin/sh
2
+
3
+die() {
4
+    echo "$@" >&2
5
+    exit 2
6
+}
7
+
8
+mktmpl() {
9
+    #
10
+    # Make temporary template for git-commit and print its path
11
+    #
12
+    local mtmpl_name="$1"; shift
13
+    local mtmpl_path
14
+    local tmpl_path
15
+    mtmpl_path="$HOME/.gittum/template/$mtmpl_name"
16
+    test -f "$mtmpl_path" || die "no such meta-template: $mtmpl_path"
17
+    bash -n "$mtmpl_path" || die
18
+    tmpl_path="/.$(mktemp -t gittum-metacm.XXXXXXXX)"
19
+    bash "$mtmpl_path" "$@" > "$tmpl_path" || die "template script exited with bad state: $?"
20
+    printf %s "$tmpl_path"
21
+}
22
+
23
+main() {
24
+    local name="$1"; shift
25
+    local tmpl
26
+    local interactive=true
27
+    test -n "$1" && interactive=false
28
+    tmpl="$(mktmpl "$name" "$@")"
29
+    if $interactive;
30
+    then
31
+        git commit --verbose --template="$tmpl"
32
+    else
33
+        git commit -F "$tmpl"
34
+    fi
35
+    rm "$tmpl"
36
+}
37
+
38
+main "$@"

+ 0
- 1
dotfiles/gittum/default/msg_bumpv ファイルの表示

@@ -1 +0,0 @@
1
-Bump version

+ 0
- 1
dotfiles/gittum/default/msg_flake8 ファイルの表示

@@ -1 +0,0 @@
1
-Flake8

+ 0
- 2
dotfiles/gittum/default/msg_tmp ファイルの表示

@@ -1,2 +0,0 @@
1
-
2
-# use this file to define temporary template

+ 0
- 1
dotfiles/gittum/default/msg_typo ファイルの表示

@@ -1 +0,0 @@
1
-Fix typo

+ 0
- 1
dotfiles/gittum/default/msg_wip ファイルの表示

@@ -1 +0,0 @@
1
-WIP

+ 5
- 10
dotfiles/gittum/main.gitconfig ファイルの表示

@@ -8,16 +8,11 @@
8 8
   blog = log --graph --oneline --pretty=tformat:'%Cred%h%Creset - %C(yellow)%s%Creset %C(green)<%an>%Creset %C(blue)@%d%Creset' --abbrev-commit
9 9
   cm = commit --verbose
10 10
   cma = commit --verbose --amend
11
-  cmf = !sh -c \
12
-        'git commit --verbose --edit --message=\"$(~/.gittum/bin/findcat msg_flake8)\"'
13
-  cmt = !sh -c \
14
-        'git commit --verbose --edit --message=\"$(~/.gittum/bin/findcat msg_tmp)\"'
15
-  cmr = !sh -c \
16
-        'git commit --verbose --edit --message=\"$(~/.gittum/bin/findcat msg_typo)\"'
17
-  cmv = !sh -c \
18
-        'git commit --verbose --edit --message=\"$(~/.gittum/bin/findcat msg_bumpv)\"'
19
-  cmw = !sh -c \
20
-        'git commit --verbose --edit --message=\"$(~/.gittum/bin/findcat msg_wip)\"'
11
+  cmf = !~/.gittum/bin/metacm msg_flake8
12
+  cmt = !~/.gittum/bin/metacm msg_tmp
13
+  cmr = !~/.gittum/bin/metacm msg_typo
14
+  cmv = !~/.gittum/bin/metacm msg_bumpv
15
+  cmw = !~/.gittum/bin/metacm msg_wip
21 16
   co = checkout
22 17
   com = checkout master
23 18
   cp = cherry-pick

+ 2
- 0
dotfiles/gittum/template/msg_bumpv ファイルの表示

@@ -0,0 +1,2 @@
1
+#!/bin/bash
2
+echo "Bump version"

+ 2
- 0
dotfiles/gittum/template/msg_flake8 ファイルの表示

@@ -0,0 +1,2 @@
1
+#!/bin/bash
2
+echo Flake8

+ 3
- 0
dotfiles/gittum/template/msg_tmp ファイルの表示

@@ -0,0 +1,3 @@
1
+#!/bin/bash
2
+echo ""
3
+echo "# use this file to define temporary template"

+ 2
- 0
dotfiles/gittum/template/msg_typo ファイルの表示

@@ -0,0 +1,2 @@
1
+#!/bin/bash
2
+echo "Fix typo"

+ 2
- 0
dotfiles/gittum/template/msg_wip ファイルの表示

@@ -0,0 +1,2 @@
1
+#!/bin/bash
2
+echo "WIP $1"