From fa68505117215d5a49fa0a13bbc1ec5e07020138 Mon Sep 17 00:00:00 2001 From: Malf Furious Date: Sun, 3 Sep 2017 16:32:01 -0400 Subject: Rewrite checkout mod to drop remote support Also, refactored repo check to the repo-access mod. --- checkout.sh | 79 +++++++++++++++------------------------------------------- repo-access.sh | 17 +++++++++++++ 2 files changed, 37 insertions(+), 59 deletions(-) diff --git a/checkout.sh b/checkout.sh index 59cc82e..a3f9f9f 100644 --- a/checkout.sh +++ b/checkout.sh @@ -1,90 +1,51 @@ ## -# systr_check_repo +# systr_init_wktree # -# Assert that the local repository path exists and is valid. -## -function systr_check_repo -{ - if [ $# -lt 1 ]; then - echo "Fatal: too few arguments to systr_check_repo" - exit 1 - fi - - path="$1" - - ( - cd "$path" - - if [ ! -f "refs/HEAD" ]; then - echo "Fatal: $path is not a repository" - exit 1 - fi - ) -} - -## -# systr_init_wktree [] -# -# Assert that the repository at : exists, then setup -# the .systr directory at the CWD. +# Assert that the repository exists, then setup the .systr directory +# at the CWD. ## function systr_init_wktree { if [ $# -lt 1 ]; then - echo "Fatal: too few arguments to systr_init_wktree" + echo "Fatal: too few args to init_wktree" >&2 exit 1 fi - if [ $# -gt 1 ]; then - remote="$1" - shift - else - remote="" - fi - path="$1" + systr_repo_check "$path" - if [[ "$remote" == "" ]]; then - systr_check_repo "$path" - else - ssh "$remote" "systrunk check-repo \"$path\"" - fi - - mkdir -p .systr/ - - echo "$remote" >.systr/remote - echo "$path" >.systr/path - echo "NULL" >.systr/BASE - echo "NULL" >.systr/TRAC + mkdir .systr + echo "$path" >.systr/path + echo "NULL" >.systr/BASE + echo "NULL" >.systr/TRAC + date >.systr/updated echo "Setup worktree at $(pwd)" } ## -# systrunk checkout [[] ] +# systrunk checkout [] # -# Reset a worktree to the state at . If is given, -# checkout also initializes a new worktree at the CWD. If -# is given, the path is assumed to be located on a remote machine. -# While resetting to the state at , all local uncommitted -# changes are lost. +# Reset a worktree to the state at . If is given, +# checkout also initializes a new worktree at the CWD. While +# resetting to , all local uncommitted changes are lost. # -# After checkout, BASE and TRAC will be set to . +# After checkout, BASE and TRAC will be set to . ## function systr_checkout { if [ $# -lt 1 ]; then - echo "Fatal: too few arguments to systr_checkout" + echo "Fatal: too few arguments to systr_checkout" >&2 exit 1 fi version="$1" if [ $# -gt 1 ]; then - shift - systr_init_wktree "$@" - read remote <.systr/remote - read path <.systr/path + systr_init_wktree "$2" + read path <.systr/path + read BASE <.systr/BASE + read TRAC <.systr/TRAC fi if [[ "$version" == "NULL" ]]; then diff --git a/repo-access.sh b/repo-access.sh index 2b6a5cc..b599dc8 100644 --- a/repo-access.sh +++ b/repo-access.sh @@ -1,3 +1,20 @@ +## +# systr_repo_check [=PATH] +# +# Assert that the local repository path exists and is valid. +## +function systr_repo_check +{ + if [ $# -gt 0 ]; then + path="$1" + fi + + if [ ! -f "$path/refs/HEAD" ]; then + echo "Fatal: $path is not a repository" >&2 + exit 1 + fi +} + ## # systr_repo_resolve_reference # -- cgit v1.2.3