codelation-cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,445 @@
1
+ # bash/zsh git prompt support
2
+ #
3
+ # Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
4
+ # Distributed under the GNU General Public License, version 2.0.
5
+ #
6
+ # This script allows you to see repository status in your prompt.
7
+ #
8
+ # To enable:
9
+ #
10
+ # 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
11
+ # 2) Add the following line to your .bashrc/.zshrc:
12
+ # source ~/.git-prompt.sh
13
+ # 3a) Change your PS1 to call __git_ps1 as
14
+ # command-substitution:
15
+ # Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
16
+ # ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
17
+ # the optional argument will be used as format string.
18
+ # 3b) Alternatively, for a slightly faster prompt, __git_ps1 can
19
+ # be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
20
+ # with two parameters, <pre> and <post>, which are strings
21
+ # you would put in $PS1 before and after the status string
22
+ # generated by the git-prompt machinery. e.g.
23
+ # Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
24
+ # will show username, at-sign, host, colon, cwd, then
25
+ # various status string, followed by dollar and SP, as
26
+ # your prompt.
27
+ # ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
28
+ # will show username, pipe, then various status string,
29
+ # followed by colon, cwd, dollar and SP, as your prompt.
30
+ # Optionally, you can supply a third argument with a printf
31
+ # format string to finetune the output of the branch status
32
+ #
33
+ # The repository status will be displayed only if you are currently in a
34
+ # git repository. The %s token is the placeholder for the shown status.
35
+ #
36
+ # The prompt status always includes the current branch name.
37
+ #
38
+ # In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
39
+ # unstaged (*) and staged (+) changes will be shown next to the branch
40
+ # name. You can configure this per-repository with the
41
+ # bash.showDirtyState variable, which defaults to true once
42
+ # GIT_PS1_SHOWDIRTYSTATE is enabled.
43
+ #
44
+ # You can also see if currently something is stashed, by setting
45
+ # GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
46
+ # then a '$' will be shown next to the branch name.
47
+ #
48
+ # If you would like to see if there're untracked files, then you can set
49
+ # GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
50
+ # files, then a '%' will be shown next to the branch name. You can
51
+ # configure this per-repository with the bash.showUntrackedFiles
52
+ # variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
53
+ # enabled.
54
+ #
55
+ # If you would like to see the difference between HEAD and its upstream,
56
+ # set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates you are behind, ">"
57
+ # indicates you are ahead, "<>" indicates you have diverged and "="
58
+ # indicates that there is no difference. You can further control
59
+ # behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
60
+ # of values:
61
+ #
62
+ # verbose show number of commits ahead/behind (+/-) upstream
63
+ # legacy don't use the '--count' option available in recent
64
+ # versions of git-rev-list
65
+ # git always compare HEAD to @{upstream}
66
+ # svn always compare HEAD to your SVN upstream
67
+ #
68
+ # By default, __git_ps1 will compare HEAD to your SVN upstream if it can
69
+ # find one, or @{upstream} otherwise. Once you have set
70
+ # GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
71
+ # setting the bash.showUpstream config variable.
72
+ #
73
+ # If you would like to see more information about the identity of
74
+ # commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
75
+ # to one of these values:
76
+ #
77
+ # contains relative to newer annotated tag (v1.6.3.2~35)
78
+ # branch relative to newer tag or branch (master~4)
79
+ # describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
80
+ # default exactly matching tag
81
+ #
82
+ # If you would like a colored hint about the current dirty state, set
83
+ # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
84
+ # the colored output of "git status -sb" and are available only when
85
+ # using __git_ps1 for PROMPT_COMMAND or precmd.
86
+
87
+ # stores the divergence from upstream in $p
88
+ # used by GIT_PS1_SHOWUPSTREAM
89
+ __git_ps1_show_upstream ()
90
+ {
91
+ local key value
92
+ local svn_remote svn_url_pattern count n
93
+ local upstream=git legacy="" verbose=""
94
+
95
+ svn_remote=()
96
+ # get some config options from git-config
97
+ local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
98
+ while read -r key value; do
99
+ case "$key" in
100
+ bash.showupstream)
101
+ GIT_PS1_SHOWUPSTREAM="$value"
102
+ if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
103
+ p=""
104
+ return
105
+ fi
106
+ ;;
107
+ svn-remote.*.url)
108
+ svn_remote[$((${#svn_remote[@]} + 1))]="$value"
109
+ svn_url_pattern+="\\|$value"
110
+ upstream=svn+git # default upstream is SVN if available, else git
111
+ ;;
112
+ esac
113
+ done <<< "$output"
114
+
115
+ # parse configuration values
116
+ for option in ${GIT_PS1_SHOWUPSTREAM}; do
117
+ case "$option" in
118
+ git|svn) upstream="$option" ;;
119
+ verbose) verbose=1 ;;
120
+ legacy) legacy=1 ;;
121
+ esac
122
+ done
123
+
124
+ # Find our upstream
125
+ case "$upstream" in
126
+ git) upstream="@{upstream}" ;;
127
+ svn*)
128
+ # get the upstream from the "git-svn-id: ..." in a commit message
129
+ # (git-svn uses essentially the same procedure internally)
130
+ local -a svn_upstream
131
+ svn_upstream=($(git log --first-parent -1 \
132
+ --grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
133
+ if [[ 0 -ne ${#svn_upstream[@]} ]]; then
134
+ svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
135
+ svn_upstream=${svn_upstream%@*}
136
+ local n_stop="${#svn_remote[@]}"
137
+ for ((n=1; n <= n_stop; n++)); do
138
+ svn_upstream=${svn_upstream#${svn_remote[$n]}}
139
+ done
140
+
141
+ if [[ -z "$svn_upstream" ]]; then
142
+ # default branch name for checkouts with no layout:
143
+ upstream=${GIT_SVN_ID:-git-svn}
144
+ else
145
+ upstream=${svn_upstream#/}
146
+ fi
147
+ elif [[ "svn+git" = "$upstream" ]]; then
148
+ upstream="@{upstream}"
149
+ fi
150
+ ;;
151
+ esac
152
+
153
+ # Find how many commits we are ahead/behind our upstream
154
+ if [[ -z "$legacy" ]]; then
155
+ count="$(git rev-list --count --left-right \
156
+ "$upstream"...HEAD 2>/dev/null)"
157
+ else
158
+ # produce equivalent output to --count for older versions of git
159
+ local commits
160
+ if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
161
+ then
162
+ local commit behind=0 ahead=0
163
+ for commit in $commits
164
+ do
165
+ case "$commit" in
166
+ "<"*) ((behind++)) ;;
167
+ *) ((ahead++)) ;;
168
+ esac
169
+ done
170
+ count="$behind $ahead"
171
+ else
172
+ count=""
173
+ fi
174
+ fi
175
+
176
+ # calculate the result
177
+ if [[ -z "$verbose" ]]; then
178
+ case "$count" in
179
+ "") # no upstream
180
+ p="" ;;
181
+ "0 0") # equal to upstream
182
+ p="=" ;;
183
+ "0 "*) # ahead of upstream
184
+ p=">" ;;
185
+ *" 0") # behind upstream
186
+ p="<" ;;
187
+ *) # diverged from upstream
188
+ p="<>" ;;
189
+ esac
190
+ else
191
+ case "$count" in
192
+ "") # no upstream
193
+ p="" ;;
194
+ "0 0") # equal to upstream
195
+ p=" u=" ;;
196
+ "0 "*) # ahead of upstream
197
+ p=" u+${count#0 }" ;;
198
+ *" 0") # behind upstream
199
+ p=" u-${count% 0}" ;;
200
+ *) # diverged from upstream
201
+ p=" u+${count#* }-${count% *}" ;;
202
+ esac
203
+ fi
204
+
205
+ }
206
+
207
+ # Helper function that is meant to be called from __git_ps1. It
208
+ # injects color codes into the appropriate gitstring variables used
209
+ # to build a gitstring.
210
+ __git_ps1_colorize_gitstring ()
211
+ {
212
+ if [[ -n ${ZSH_VERSION-} ]]; then
213
+ local c_red='%F{red}'
214
+ local c_green='%F{green}'
215
+ local c_lblue='%F{blue}'
216
+ local c_clear='%f'
217
+ else
218
+ # Using \[ and \] around colors is necessary to prevent
219
+ # issues with command line editing/browsing/completion!
220
+ local c_red='\[\e[31m\]'
221
+ local c_green='\[\e[32m\]'
222
+ local c_lblue='\[\e[1;34m\]'
223
+ local c_clear='\[\e[0m\]'
224
+ fi
225
+ local bad_color=$c_red
226
+ local ok_color=$c_green
227
+ local flags_color="$c_lblue"
228
+
229
+ local branch_color=""
230
+ if [ $detached = no ]; then
231
+ branch_color="$ok_color"
232
+ else
233
+ branch_color="$bad_color"
234
+ fi
235
+ c="$branch_color$c"
236
+
237
+ z="$c_clear$z"
238
+ if [ "$w" = "*" ]; then
239
+ w="$bad_color$w"
240
+ fi
241
+ if [ -n "$i" ]; then
242
+ i="$ok_color$i"
243
+ fi
244
+ if [ -n "$s" ]; then
245
+ s="$flags_color$s"
246
+ fi
247
+ if [ -n "$u" ]; then
248
+ u="$bad_color$u"
249
+ fi
250
+ r="$c_clear$r"
251
+ }
252
+
253
+ # __git_ps1 accepts 0 or 1 arguments (i.e., format string)
254
+ # when called from PS1 using command substitution
255
+ # in this mode it prints text to add to bash PS1 prompt (includes branch name)
256
+ #
257
+ # __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
258
+ # in that case it _sets_ PS1. The arguments are parts of a PS1 string.
259
+ # when two arguments are given, the first is prepended and the second appended
260
+ # to the state string when assigned to PS1.
261
+ # The optional third parameter will be used as printf format string to further
262
+ # customize the output of the git-status string.
263
+ # In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
264
+ __git_ps1 ()
265
+ {
266
+ local pcmode=no
267
+ local detached=no
268
+ local ps1pc_start='\u@\h:\w '
269
+ local ps1pc_end='\$ '
270
+ local printf_format=' (%s)'
271
+
272
+ case "$#" in
273
+ 2|3) pcmode=yes
274
+ ps1pc_start="$1"
275
+ ps1pc_end="$2"
276
+ printf_format="${3:-$printf_format}"
277
+ ;;
278
+ 0|1) printf_format="${1:-$printf_format}"
279
+ ;;
280
+ *) return
281
+ ;;
282
+ esac
283
+
284
+ local repo_info rev_parse_exit_code
285
+ repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
286
+ --is-bare-repository --is-inside-work-tree \
287
+ --short HEAD 2>/dev/null)"
288
+ rev_parse_exit_code="$?"
289
+
290
+ if [ -z "$repo_info" ]; then
291
+ if [ $pcmode = yes ]; then
292
+ #In PC mode PS1 always needs to be set
293
+ PS1="$ps1pc_start$ps1pc_end"
294
+ fi
295
+ return
296
+ fi
297
+
298
+ local short_sha
299
+ if [ "$rev_parse_exit_code" = "0" ]; then
300
+ short_sha="${repo_info##*$'\n'}"
301
+ repo_info="${repo_info%$'\n'*}"
302
+ fi
303
+ local inside_worktree="${repo_info##*$'\n'}"
304
+ repo_info="${repo_info%$'\n'*}"
305
+ local bare_repo="${repo_info##*$'\n'}"
306
+ repo_info="${repo_info%$'\n'*}"
307
+ local inside_gitdir="${repo_info##*$'\n'}"
308
+ local g="${repo_info%$'\n'*}"
309
+
310
+ local r=""
311
+ local b=""
312
+ local step=""
313
+ local total=""
314
+ if [ -d "$g/rebase-merge" ]; then
315
+ read b 2>/dev/null <"$g/rebase-merge/head-name"
316
+ read step 2>/dev/null <"$g/rebase-merge/msgnum"
317
+ read total 2>/dev/null <"$g/rebase-merge/end"
318
+ if [ -f "$g/rebase-merge/interactive" ]; then
319
+ r="|REBASE-i"
320
+ else
321
+ r="|REBASE-m"
322
+ fi
323
+ else
324
+ if [ -d "$g/rebase-apply" ]; then
325
+ read step 2>/dev/null <"$g/rebase-apply/next"
326
+ read total 2>/dev/null <"$g/rebase-apply/last"
327
+ if [ -f "$g/rebase-apply/rebasing" ]; then
328
+ read b 2>/dev/null <"$g/rebase-apply/head-name"
329
+ r="|REBASE"
330
+ elif [ -f "$g/rebase-apply/applying" ]; then
331
+ r="|AM"
332
+ else
333
+ r="|AM/REBASE"
334
+ fi
335
+ elif [ -f "$g/MERGE_HEAD" ]; then
336
+ r="|MERGING"
337
+ elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
338
+ r="|CHERRY-PICKING"
339
+ elif [ -f "$g/REVERT_HEAD" ]; then
340
+ r="|REVERTING"
341
+ elif [ -f "$g/BISECT_LOG" ]; then
342
+ r="|BISECTING"
343
+ fi
344
+
345
+ if [ -n "$b" ]; then
346
+ :
347
+ elif [ -h "$g/HEAD" ]; then
348
+ # symlink symbolic ref
349
+ b="$(git symbolic-ref HEAD 2>/dev/null)"
350
+ else
351
+ local head=""
352
+ if ! read head 2>/dev/null <"$g/HEAD"; then
353
+ if [ $pcmode = yes ]; then
354
+ PS1="$ps1pc_start$ps1pc_end"
355
+ fi
356
+ return
357
+ fi
358
+ # is it a symbolic ref?
359
+ b="${head#ref: }"
360
+ if [ "$head" = "$b" ]; then
361
+ detached=yes
362
+ b="$(
363
+ case "${GIT_PS1_DESCRIBE_STYLE-}" in
364
+ (contains)
365
+ git describe --contains HEAD ;;
366
+ (branch)
367
+ git describe --contains --all HEAD ;;
368
+ (describe)
369
+ git describe HEAD ;;
370
+ (* | default)
371
+ git describe --tags --exact-match HEAD ;;
372
+ esac 2>/dev/null)" ||
373
+
374
+ b="$short_sha..."
375
+ b="($b)"
376
+ fi
377
+ fi
378
+ fi
379
+
380
+ if [ -n "$step" ] && [ -n "$total" ]; then
381
+ r="$r $step/$total"
382
+ fi
383
+
384
+ local w=""
385
+ local i=""
386
+ local s=""
387
+ local u=""
388
+ local c=""
389
+ local p=""
390
+
391
+ if [ "true" = "$inside_gitdir" ]; then
392
+ if [ "true" = "$bare_repo" ]; then
393
+ c="BARE:"
394
+ else
395
+ b="GIT_DIR!"
396
+ fi
397
+ elif [ "true" = "$inside_worktree" ]; then
398
+ if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
399
+ [ "$(git config --bool bash.showDirtyState)" != "false" ]
400
+ then
401
+ git diff --no-ext-diff --quiet --exit-code || w="*"
402
+ if [ -n "$short_sha" ]; then
403
+ git diff-index --cached --quiet HEAD -- || i="+"
404
+ else
405
+ i="#"
406
+ fi
407
+ fi
408
+ if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
409
+ [ -r "$g/refs/stash" ]; then
410
+ s="$"
411
+ fi
412
+
413
+ if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
414
+ [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
415
+ git ls-files --others --exclude-standard --error-unmatch -- '*' >/dev/null 2>/dev/null
416
+ then
417
+ u="%${ZSH_VERSION+%}"
418
+ fi
419
+
420
+ if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
421
+ __git_ps1_show_upstream
422
+ fi
423
+ fi
424
+
425
+ local z="${GIT_PS1_STATESEPARATOR-" "}"
426
+
427
+ # NO color option unless in PROMPT_COMMAND mode
428
+ if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
429
+ __git_ps1_colorize_gitstring
430
+ fi
431
+
432
+ local f="$w$i$s$u"
433
+ local gitstring="$c${b##refs/heads/}${f:+$z$f}$r$p"
434
+
435
+ if [ $pcmode = yes ]; then
436
+ if [[ -n ${ZSH_VERSION-} ]]; then
437
+ gitstring=$(printf -- "$printf_format" "$gitstring")
438
+ else
439
+ printf -v gitstring -- "$printf_format" "$gitstring"
440
+ fi
441
+ PS1="$ps1pc_start$gitstring$ps1pc_end"
442
+ else
443
+ printf -- "$printf_format" "$gitstring"
444
+ fi
445
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "camelcase": true,
3
+ "indent": 2,
4
+ "white": false,
5
+ "curly": true,
6
+ "eqeqeq": true,
7
+ "immed": true,
8
+ "latedef": true,
9
+ "newcap": true,
10
+ "noarg": true,
11
+ "sub": true,
12
+ "undef": true,
13
+ "boss": true,
14
+ "eqnull": true,
15
+ "browser": true,
16
+ "predef": {
17
+ "alert": true,
18
+ "confirm": true,
19
+ "console": true,
20
+ "test": true,
21
+ "equal": true,
22
+ "ok": true,
23
+ "sinon": true,
24
+ "require": true,
25
+ "$": true,
26
+ "jQuery": true,
27
+ "Ember": true,
28
+ "Handlebars": true,
29
+ "App": true,
30
+ "DS": true
31
+ }
32
+ }