aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2019-06-09 21:43:48 +0200
committerTeddy Wing2019-06-09 21:47:49 +0200
commitdf93125733ef95038e9281f605e117ec805218f6 (patch)
tree47645a757a4c94659526780880b31e2a57e253ef
parent3ff388797bc3abe7b9996877db4f2fcd860f01f0 (diff)
downloadcode-review-df93125733ef95038e9281f605e117ec805218f6.tar.bz2
Move database functions from code-review-start to code-review-database
Put these functions in a function-only file that can be sourced by other scripts that need database access.
-rw-r--r--code-review-database74
-rwxr-xr-xcode-review-start77
2 files changed, 77 insertions, 74 deletions
diff --git a/code-review-database b/code-review-database
new file mode 100644
index 0000000..642f9c4
--- /dev/null
+++ b/code-review-database
@@ -0,0 +1,74 @@
+#!/usr/bin/env bash
+
+GIT_ROOT="$(git rev-parse --show-toplevel)"
+DATABASE="${GIT_ROOT}/.git/info/code-review.sqlite"
+
+function create_database () {
+ sqlite3 "$DATABASE" <<-SQL
+ BEGIN TRANSACTION;
+
+ CREATE TABLE IF NOT EXISTS merge_bases (
+ id INTEGER PRIMARY KEY,
+ head TEXT NOT NULL,
+ base TEXT NOT NULL
+ );
+
+ COMMIT;
+ SQL
+}
+
+function create_database_if_not_exists () {
+ if [ ! -f "$DATABASE" ]; then
+ create_database
+ fi
+}
+
+function create_merge_base () {
+ local head="$1"
+ local base="$2"
+
+ # TODO: Change to upsert or equivalent
+ sqlite3 "$DATABASE" <<-SQL
+ BEGIN TRANSACTION;
+
+ INSERT INTO merge_bases
+ (head, base)
+ VALUES
+ (
+ '$head',
+ '$base'
+ );
+
+ COMMIT;
+ SQL
+}
+
+function create_merge_base_from_current () {
+ local base="$1"
+
+ create_merge_base "$(current_branch)" "$base"
+}
+
+function get_merge_base () {
+ local head="$(current_branch)"
+ local default_base='master'
+
+ if git config remote.origin.url > /dev/null; then
+ default_base='origin/master'
+ fi
+
+ sqlite3 "$DATABASE" <<-SQL
+ BEGIN TRANSACTION;
+
+ SELECT ifnull(max(base), '$default_base')
+ FROM merge_bases
+ WHERE head = '$head'
+ LIMIT 1;
+
+ COMMIT;
+ SQL
+}
+
+function current_branch () {
+ git rev-parse --abbrev-ref HEAD
+}
diff --git a/code-review-start b/code-review-start
index 0dc2265..005d612 100755
--- a/code-review-start
+++ b/code-review-start
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
# TODO: save base branch (default to origin/master) paired with current branch.
# Subsequent code-review commands should use this base branch.
@@ -7,83 +7,12 @@
# subcommand.
-GIT_ROOT="$(git rev-parse --show-toplevel)"
-DATABASE="${GIT_ROOT}/.git/info/code-review.sqlite"
-
-function create_database () {
- sqlite3 "$DATABASE" <<-SQL
- BEGIN TRANSACTION;
-
- CREATE TABLE IF NOT EXISTS merge_bases (
- id INTEGER PRIMARY KEY,
- head TEXT NOT NULL,
- base TEXT NOT NULL
- );
-
- COMMIT;
- SQL
-}
-
-function create_database_if_not_exists () {
- if [ ! -f "$DATABASE" ]; then
- create_database
- fi
-}
-
-function create_merge_base () {
- local head="$1"
- local base="$2"
-
- # TODO: Change to upsert or equivalent
- sqlite3 "$DATABASE" <<-SQL
- BEGIN TRANSACTION;
-
- INSERT INTO merge_bases
- (head, base)
- VALUES
- (
- '$head',
- '$base'
- );
-
- COMMIT;
- SQL
-}
-
-function create_merge_base_from_current () {
- local base="$1"
-
- create_merge_base "$(current_branch)" "$base"
-}
-
-function get_merge_base () {
- local head="$(current_branch)"
- local default_base='master'
-
- if git config remote.origin.url > /dev/null; then
- default_base='origin/master'
- fi
-
- sqlite3 "$DATABASE" <<-SQL
- BEGIN TRANSACTION;
-
- SELECT ifnull(max(base), '$default_base')
- FROM merge_bases
- WHERE head = '$head'
- LIMIT 1;
-
- COMMIT;
- SQL
-}
-
-function current_branch () {
- git rev-parse --abbrev-ref HEAD
-}
+SCRIPT="$(dirname "$0")"
+source "$SCRIPT/code-review-database"
create_database_if_not_exists
-
merge_base='origin/master'
if [ $# -eq 1 ]; then
merge_base="$1"