Blame view

antigen.zsh 10.9 KB
e5dfac7ea   Shrikant Sharat   Initial commit. W...
1
2
3
4
  #!/bin/zsh
  
  # Each line in this string has the following entries separated by a space
  # character.
c7827f8ac   Shrikant Sharat   Fix comments to i...
5
  # <repo-url>, <plugin-location>, <bundle-type>, <has-local-clone>
e5dfac7ea   Shrikant Sharat   Initial commit. W...
6
  # FIXME: Is not kept local by zsh!
9dc631003   Shrikant Sharat   Rename bundle rec...
7
  local _ANTIGEN_BUNDLE_RECORD=""
e5dfac7ea   Shrikant Sharat   Initial commit. W...
8
9
  
  # Syntaxes
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
10
  #   antigen-bundle <url> [<loc>=/]
843297b20   Shrikant Sharat   Initial implement...
11
12
  # Keyword only arguments:
  #   branch - The branch of the repo to use for this bundle.
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
13
  antigen-bundle () {
e5dfac7ea   Shrikant Sharat   Initial commit. W...
14
15
16
17
  
      # Bundle spec arguments' default values.
      local url="$ANTIGEN_DEFAULT_REPO_URL"
      local loc=/
2923c490c   Shrikant Sharat   Branch informatio...
18
      local branch=
38b0b0409   Shrikant Sharat   Fix #12. Local bu...
19
      local no_local_clone=false
d535ba468   Shrikant Sharat   Introduced a new ...
20
      local btype=plugin
e5dfac7ea   Shrikant Sharat   Initial commit. W...
21
22
  
      # Set spec values based on the positional arguments.
3635aa19e   Shrikant Sharat   Refactoring to pr...
23
24
      local position_args
      position_args=(url loc)
e5dfac7ea   Shrikant Sharat   Initial commit. W...
25
      local i=1
b43a3cf1f   Shrikant Sharat   Keyword arguments...
26
      while ! [[ -z $1 || $1 == --* ]]; do
3635aa19e   Shrikant Sharat   Refactoring to pr...
27
          local arg_name="${position_args[$i]}"
43bb2cef1   Shrikant Sharat   Variable declarat...
28
          local arg_value="$1"
e5dfac7ea   Shrikant Sharat   Initial commit. W...
29
30
31
32
33
34
35
          eval "local $arg_name='$arg_value'"
          shift
          i=$(($i + 1))
      done
  
      # Set spec values from keyword arguments, if any. The remaining arguments
      # are all assumed to be keyword arguments.
4dceca485   Shrikant Sharat   Add support for b...
36
      while [[ $1 == --* ]]; do
ec9febf8c   Shrikant Sharat   Fix themes not be...
37
38
          # Remove the `--` at the start.
          local arg="${1#--}"
4dceca485   Shrikant Sharat   Add support for b...
39
40
41
42
  
          if [[ $arg != *=* ]]; then
              arg="$arg=true"
          fi
ec9febf8c   Shrikant Sharat   Fix themes not be...
43
44
45
46
          # Get the name of the arg and replace the `-`'s to `_`'s.
          local arg_name="${${arg%\=*}//-/_}"
  
          # Get the value of the arg.
4dceca485   Shrikant Sharat   Add support for b...
47
          local arg_value="${arg#*\=}"
e5dfac7ea   Shrikant Sharat   Initial commit. W...
48
49
50
          eval "local $arg_name='$arg_value'"
          shift
      done
b29510ce7   Shrikant Sharat   Small code reorga...
51
52
53
54
55
      # Check if url is just the plugin name. Super short syntax.
      if [[ "$url" != */* ]]; then
          loc="plugins/$url"
          url="$ANTIGEN_DEFAULT_REPO_URL"
      fi
e5dfac7ea   Shrikant Sharat   Initial commit. W...
56
      # Resolve the url.
39379a878   Shrikant Sharat   Move url resolvin...
57
      url="$(-antigen-resolve-bundle-url "$url")"
e5dfac7ea   Shrikant Sharat   Initial commit. W...
58

2923c490c   Shrikant Sharat   Branch informatio...
59
60
61
62
      # Add the branch information to the url.
      if [[ ! -z $branch ]]; then
          url="$url|$branch"
      fi
41abcf662   Shrikant Sharat   Simpler implement...
63
      # The `make_local_clone` variable better represents whether there should be
e6cc15b5f   Shrikant Sharat   Fix local paths w...
64
65
66
67
      # a local clone made. For cloning to be avoided, firstly, the `$url` should
      # be an absolute local path and `$branch` should be empty. In addition to
      # these two conditions, either the `--no-local-clone` option should be
      # given, or `$url` should not a git repo.
41abcf662   Shrikant Sharat   Simpler implement...
68
      local make_local_clone=true
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
69
70
      if [[ $url == /* && -z $branch &&
              ( $no_local_clone == true || ! -d $url/.git ) ]]; then
41abcf662   Shrikant Sharat   Simpler implement...
71
72
          make_local_clone=false
      fi
e5dfac7ea   Shrikant Sharat   Initial commit. W...
73
      # Add it to the record.
cbdabb20c   Shrikant Sharat   80|
74
75
76
      _ANTIGEN_BUNDLE_RECORD="$_ANTIGEN_BUNDLE_RECORD
  $url $loc $btype"
      _ANTIGEN_BUNDLE_RECORD="$_ANTIGEN_BUNDLE_RECORD $make_local_clone"
a12d3140a   Shrikant Sharat   Removed bundle-in...
77

38b0b0409   Shrikant Sharat   Fix #12. Local bu...
78
      # Ensure a clone exists for this repo, if needed.
41abcf662   Shrikant Sharat   Simpler implement...
79
      if $make_local_clone; then
38b0b0409   Shrikant Sharat   Fix #12. Local bu...
80
81
          -antigen-ensure-repo "$url"
      fi
e5dfac7ea   Shrikant Sharat   Initial commit. W...
82

499c0dd5d   Shrikant Sharat   Added some comments.
83
      # Load the plugin.
e6cc15b5f   Shrikant Sharat   Fix local paths w...
84
      -antigen-load "$url" "$loc" "$btype" "$make_local_clone"
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
85

a12d3140a   Shrikant Sharat   Removed bundle-in...
86
  }
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
87

39379a878   Shrikant Sharat   Move url resolvin...
88
89
90
91
92
  -antigen-resolve-bundle-url () {
      # Given an acceptable short/full form of a bundle's repo url, this function
      # echoes the full form of the repo's clone url.
  
      local url="$1"
7af602dae   Shrikant Sharat   Minor comment edi...
93
      # Expand short github url syntax: `username/reponame`.
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
94
95
96
      if [[ $url != git://* &&
              $url != https://* &&
              $url != /* &&
60fa053ec   Shrikant Sharat   Add tests for url...
97
98
              $url != git@github.com:*/*
              ]]; then
1cae4fc91   Shrikant Sharat   Some refactoring ...
99
          url="https://github.com/${url%.git}.git"
39379a878   Shrikant Sharat   Move url resolvin...
100
101
102
103
      fi
  
      echo "$url"
  }
3c5ff1c1e   Shrikant Sharat   Add antigen-bundl...
104
105
106
107
108
109
  antigen-bundles () {
      # Bulk add many bundles at one go. Empty lines and lines starting with a `#`
      # are ignored. Everything else is given to `antigen-bundle` as is, no
      # quoting rules applied.
  
      local line
2e6d0c416   Shrikant Sharat   Fix #5. Ignore sp...
110
      grep -v '^\s*$\|^#' | while read line; do
3c5ff1c1e   Shrikant Sharat   Add antigen-bundl...
111
112
113
114
115
          # Using `eval` so that we can use the shell-style quoting in each line
          # piped to `antigen-bundles`.
          eval "antigen-bundle $line"
      done
  }
2fe4683b3   Shrikant Sharat   Update README wit...
116
  antigen-update () {
158407151   Shrikant Sharat   Refactoring of pr...
117
      # Update your bundles, i.e., `git pull` in all the plugin repos.
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
118
119
120
121
      -antigen-echo-record |
          awk '{print $1}' |
          sort -u |
          while read url; do
5d199ab20   Shrikant Sharat   Print the repo ur...
122
              echo "**** Pulling $url"
0912ba472   Shrikant Sharat   Print a summary o...
123
              -antigen-ensure-repo --update --verbose "$url"
5d199ab20   Shrikant Sharat   Print the repo ur...
124
              echo
8d0d219d6   Shrikant Sharat   Fix #9 Update com...
125
          done
158407151   Shrikant Sharat   Refactoring of pr...
126
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
127
  -antigen-get-clone-dir () {
a12d3140a   Shrikant Sharat   Removed bundle-in...
128
129
130
      # Takes a repo url and gives out the path that this url needs to be cloned
      # to. Doesn't actually clone anything.
      # TODO: Memoize?
843297b20   Shrikant Sharat   Initial implement...
131

2923c490c   Shrikant Sharat   Branch informatio...
132
133
      # The url given.
      local url="$1"
843297b20   Shrikant Sharat   Initial implement...
134

499c0dd5d   Shrikant Sharat   Added some comments.
135
136
      # Echo the full path to the clone directory.
      echo -n $ADOTDIR/repos/
2923c490c   Shrikant Sharat   Branch informatio...
137
      echo "$url" | sed \
a12d3140a   Shrikant Sharat   Removed bundle-in...
138
          -e 's./.-SLASH-.g' \
843297b20   Shrikant Sharat   Initial implement...
139
140
          -e 's.:.-COLON-.g' \
          -e 's.|.-PIPE-.g'
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
141
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
142
  -antigen-get-clone-url () {
0b32bec27   Shrikant Sharat   bundle-cleanup co...
143
144
145
146
147
      # Takes a repo's clone dir and gives out the repo's original url that was
      # used to create the given directory path.
      # TODO: Memoize?
      echo "$1" | sed \
          -e "s:^$ADOTDIR/repos/::" \
0b32bec27   Shrikant Sharat   bundle-cleanup co...
148
          -e 's.-SLASH-./.g' \
843297b20   Shrikant Sharat   Initial implement...
149
          -e 's.-COLON-.:.g' \
a5e21a6a1   Shrikant Sharat   Do comparisons wi...
150
          -e 's.-PIPE-.|.g'
0b32bec27   Shrikant Sharat   bundle-cleanup co...
151
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
152
  -antigen-ensure-repo () {
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
153

499c0dd5d   Shrikant Sharat   Added some comments.
154
155
156
      # Ensure that a clone exists for the given repo url and branch. If the first
      # argument is `--update` and if a clone already exists for the given repo
      # and branch, it is pull-ed, i.e., updated.
c1479baff   Shrikant Sharat   Accept a --verbos...
157
      # Argument defaults.
499c0dd5d   Shrikant Sharat   Added some comments.
158
      # Check if we have to update.
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
159
      local update=false
c1479baff   Shrikant Sharat   Accept a --verbos...
160
161
162
163
164
165
      # Verbose output.
      local verbose=false
  
      # Load any boolean arguments specified.
      while [[ $1 == --* ]]; do
          eval "local '${1#--}=true'"
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
166
          shift
c1479baff   Shrikant Sharat   Accept a --verbos...
167
      done
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
168

499c0dd5d   Shrikant Sharat   Added some comments.
169
      # Get the clone's directory as per the given repo url and branch.
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
170
      local url="$1"
2923c490c   Shrikant Sharat   Branch informatio...
171
      local clone_dir="$(-antigen-get-clone-dir $url)"
062a7b830   Shrikant Sharat   Refactor temporar...
172
173
174
175
176
  
      # A temporary function wrapping the `git` command with repeated arguments.
      --plugin-git () {
          eval git --git-dir=$clone_dir/.git --work-tree=$clone_dir "$@"
      }
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
177

499c0dd5d   Shrikant Sharat   Added some comments.
178
      # Clone if it doesn't already exist.
aa510273d   Shrikant Sharat   Removed useless l...
179
      if [[ ! -d $clone_dir ]]; then
2923c490c   Shrikant Sharat   Branch informatio...
180
          git clone "${url%|*}" "$clone_dir"
aa510273d   Shrikant Sharat   Removed useless l...
181
      elif $update; then
0912ba472   Shrikant Sharat   Print a summary o...
182
          # Save current revision.
382d92096   Shrikant Sharat   Use local variabl...
183
          local old_rev="$(--plugin-git rev-parse HEAD)"
499c0dd5d   Shrikant Sharat   Added some comments.
184
          # Pull changes if update requested.
062a7b830   Shrikant Sharat   Refactor temporar...
185
          --plugin-git pull
0912ba472   Shrikant Sharat   Print a summary o...
186
          # Get the new revision.
382d92096   Shrikant Sharat   Use local variabl...
187
          local new_rev="$(--plugin-git rev-parse HEAD)"
2ac7c0cb0   Shrikant Sharat   Bundles are insta...
188
      fi
499c0dd5d   Shrikant Sharat   Added some comments.
189
      # If its a specific branch that we want, checkout that branch.
2923c490c   Shrikant Sharat   Branch informatio...
190
      if [[ $url == *\|* ]]; then
013216d53   Shrikant Sharat   Merge branch 'mas...
191
          local current_branch=${$(--plugin-git symbolic-ref HEAD)##refs/heads/}
ccc3d1443   Arash Rouhani   Stop saying "alre...
192
          local requested_branch="${url#*|}"
f783f3860   Shrikant Sharat   Comments and inde...
193
          # Only do the checkout when we are not already on the branch.
ccc3d1443   Arash Rouhani   Stop saying "alre...
194
          [[ $requested_branch != $current_branch ]] &&
f783f3860   Shrikant Sharat   Comments and inde...
195
              --plugin-git checkout $requested_branch
843297b20   Shrikant Sharat   Initial implement...
196
      fi
0912ba472   Shrikant Sharat   Print a summary o...
197
198
199
      if ! [[ -z $old_rev || $old_rev == $new_rev ]]; then
          echo Updated from ${old_rev:0:7} to ${new_rev:0:7}.
          if $verbose; then
062a7b830   Shrikant Sharat   Refactor temporar...
200
              --plugin-git log --oneline --reverse --no-merges --stat '@{1}..'
0912ba472   Shrikant Sharat   Print a summary o...
201
202
          fi
      fi
7af602dae   Shrikant Sharat   Minor comment edi...
203
      # Remove the temporary git wrapper function.
062a7b830   Shrikant Sharat   Refactor temporar...
204
      unfunction -- --plugin-git
e5dfac7ea   Shrikant Sharat   Initial commit. W...
205
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
206
  -antigen-load () {
e5dfac7ea   Shrikant Sharat   Initial commit. W...
207

a12d3140a   Shrikant Sharat   Removed bundle-in...
208
      local url="$1"
843297b20   Shrikant Sharat   Initial implement...
209
      local loc="$2"
a12d3140a   Shrikant Sharat   Removed bundle-in...
210
      local btype="$3"
41abcf662   Shrikant Sharat   Simpler implement...
211
      local make_local_clone="$4"
843297b20   Shrikant Sharat   Initial implement...
212

499c0dd5d   Shrikant Sharat   Added some comments.
213
      # The full location where the plugin is located.
38b0b0409   Shrikant Sharat   Fix #12. Local bu...
214
      local location
41abcf662   Shrikant Sharat   Simpler implement...
215
      if $make_local_clone; then
38b0b0409   Shrikant Sharat   Fix #12. Local bu...
216
217
218
219
          location="$(-antigen-get-clone-dir "$url")/$loc"
      else
          location="$url"
      fi
e5dfac7ea   Shrikant Sharat   Initial commit. W...
220

d535ba468   Shrikant Sharat   Introduced a new ...
221
      if [[ $btype == theme ]]; then
e5dfac7ea   Shrikant Sharat   Initial commit. W...
222

d535ba468   Shrikant Sharat   Introduced a new ...
223
224
225
          # Of course, if its a theme, the location would point to the script
          # file.
          source "$location"
e5dfac7ea   Shrikant Sharat   Initial commit. W...
226

d535ba468   Shrikant Sharat   Introduced a new ...
227
      else
e5dfac7ea   Shrikant Sharat   Initial commit. W...
228

7af602dae   Shrikant Sharat   Minor comment edi...
229
          # Source the plugin script.
d535ba468   Shrikant Sharat   Introduced a new ...
230
231
          # FIXME: I don't know. Looks very very ugly. Needs a better
          # implementation once tests are ready.
cd68a349f   Shrikant Sharat   Fix update to zsh...
232
          local script_loc="$(ls "$location" | grep -m1 '\.plugin\.zsh$')"
499c0dd5d   Shrikant Sharat   Added some comments.
233

d535ba468   Shrikant Sharat   Introduced a new ...
234
235
236
          if [[ -f $script_loc ]]; then
              # If we have a `*.plugin.zsh`, source it.
              source "$script_loc"
499c0dd5d   Shrikant Sharat   Added some comments.
237

cd68a349f   Shrikant Sharat   Fix update to zsh...
238
          elif [[ ! -z "$(ls "$location" | grep -m1 '\.zsh$')" ]]; then
d535ba468   Shrikant Sharat   Introduced a new ...
239
240
              # If there is no `*.plugin.zsh` file, source *all* the `*.zsh`
              # files.
cd68a349f   Shrikant Sharat   Fix update to zsh...
241
              for script ($location/*.zsh(N)) source "$script"
499c0dd5d   Shrikant Sharat   Added some comments.
242

cd68a349f   Shrikant Sharat   Fix update to zsh...
243
          elif [[ ! -z "$(ls "$location" | grep -m1 '\.sh$')" ]]; then
17f8e971e   Shrikant Sharat   Work with non zsh...
244
245
              # If there are no `*.zsh` files either, we look for and source any
              # `*.sh` files instead.
cd68a349f   Shrikant Sharat   Fix update to zsh...
246
              for script ($location/*.sh(N)) source "$script"
499c0dd5d   Shrikant Sharat   Added some comments.
247

d535ba468   Shrikant Sharat   Introduced a new ...
248
          fi
499c0dd5d   Shrikant Sharat   Added some comments.
249
          # Add to $fpath, for completion(s).
d535ba468   Shrikant Sharat   Introduced a new ...
250
251
252
          fpath=($location $fpath)
  
      fi
e5dfac7ea   Shrikant Sharat   Initial commit. W...
253

e5dfac7ea   Shrikant Sharat   Initial commit. W...
254
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
255
  antigen-cleanup () {
0b32bec27   Shrikant Sharat   bundle-cleanup co...
256

499c0dd5d   Shrikant Sharat   Added some comments.
257
      # Cleanup unused repositories.
1f541f429   Shrikant Sharat   Add --force argum...
258
259
260
261
      local force=false
      if [[ $1 == --force ]]; then
          force=true
      fi
0b32bec27   Shrikant Sharat   bundle-cleanup co...
262
263
264
265
266
267
268
      if [[ ! -d "$ADOTDIR/repos" || -z "$(ls "$ADOTDIR/repos/")" ]]; then
          echo "You don't have any bundles."
          return 0
      fi
  
      # Find directores in ADOTDIR/repos, that are not in the bundles record.
      local unused_clones="$(comm -13 \
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
269
270
271
          <(-antigen-echo-record |
              awk '$4 == "true" {print $1}' |
              while read line; do
a5e21a6a1   Shrikant Sharat   Do comparisons wi...
272
                  -antigen-get-clone-dir "$line"
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
273
274
              done |
              sort -u) \
a5e21a6a1   Shrikant Sharat   Do comparisons wi...
275
          <(ls -d "$ADOTDIR/repos/"* | sort -u))"
0b32bec27   Shrikant Sharat   bundle-cleanup co...
276
277
278
279
280
281
282
  
      if [[ -z $unused_clones ]]; then
          echo "You don't have any unidentified bundles."
          return 0
      fi
  
      echo 'You have clones for the following repos, but are not used.'
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
283
284
      echo "$unused_clones" |
          while read line; do
a5e21a6a1   Shrikant Sharat   Do comparisons wi...
285
              -antigen-get-clone-url "$line"
0b4fbaaf6   Shrikant Sharat   Get rid of backsl...
286
287
          done |
          sed -e 's/^/  /' -e 's/|/, branch /'
0b32bec27   Shrikant Sharat   bundle-cleanup co...
288

1f541f429   Shrikant Sharat   Add --force argum...
289
290
      if $force || (echo -n '
  Delete them all? [y/N] '; read -q); then
0b32bec27   Shrikant Sharat   bundle-cleanup co...
291
292
          echo
          echo
759e381e1   Shrikant Sharat   Refactor variable...
293
          echo "$unused_clones" | while read line; do
a5e21a6a1   Shrikant Sharat   Do comparisons wi...
294
295
              echo -n "Deleting clone for $(-antigen-get-clone-url "$line")..."
              rm -rf "$line"
0b32bec27   Shrikant Sharat   bundle-cleanup co...
296
297
298
299
300
301
302
              echo ' done.'
          done
      else
          echo
          echo Nothing deleted.
      fi
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
303
304
  antigen-lib () {
      antigen-bundle --loc=lib
e5dfac7ea   Shrikant Sharat   Initial commit. W...
305
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
306
  antigen-theme () {
e5dfac7ea   Shrikant Sharat   Initial commit. W...
307
      local name="${1:-robbyrussell}"
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
308
      antigen-bundle --loc=themes/$name.zsh-theme --btype=theme
e5dfac7ea   Shrikant Sharat   Initial commit. W...
309
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
310
  antigen-apply () {
e5dfac7ea   Shrikant Sharat   Initial commit. W...
311
      # Initialize completion.
a91386310   Shrikant Sharat   Add a todo note o...
312
313
      # TODO: Only load completions if there are any changes to the bundle
      # repositories.
e5dfac7ea   Shrikant Sharat   Initial commit. W...
314
315
      compinit -i
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
316
  antigen-list () {
7af602dae   Shrikant Sharat   Minor comment edi...
317
      # List all currently installed bundles.
9dc631003   Shrikant Sharat   Rename bundle rec...
318
      if [[ -z "$_ANTIGEN_BUNDLE_RECORD" ]]; then
df942673b   Shrikant Sharat   Added bundle-list...
319
320
321
          echo "You don't have any bundles." >&2
          return 1
      else
3aa0d2d8a   Shrikant Sharat   Fix duplicate ent...
322
          -antigen-echo-record | sort -u
df942673b   Shrikant Sharat   Added bundle-list...
323
324
      fi
  }
fee42de18   Shrikant Sharat   Add a small antig...
325
326
327
328
329
330
331
  antigen-help () {
      cat <<EOF
  Antigen is a plugin management system for zsh. It makes it easy to grab awesome
  shell scripts and utilities, put up on github. For further details and complete
  documentation, visit the project's page at 'http://antigen.sharats.me'.
  EOF
  }
fd547d958   Shrikant Sharat   An `antigen` comm...
332
333
334
335
336
337
338
  # A syntax sugar to avoid the `-` when calling antigen commands. With this
  # function, you can write `antigen-bundle` as `antigen bundle` and so on.
  antigen () {
      local cmd="$1"
      shift
      "antigen-$cmd" "$@"
  }
bc9d20c7a   Shrikant Sharat   Add comments.
339
340
  # Echo the bundle specs as in the record. The first line is not echoed since it
  # is a blank line.
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
341
  -antigen-echo-record () {
9dc631003   Shrikant Sharat   Rename bundle rec...
342
      echo "$_ANTIGEN_BUNDLE_RECORD" | sed -n '1!p'
e5dfac7ea   Shrikant Sharat   Initial commit. W...
343
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
344
  -antigen-env-setup () {
7af602dae   Shrikant Sharat   Minor comment edi...
345
      # Pre-startup initializations.
e5dfac7ea   Shrikant Sharat   Initial commit. W...
346
347
      -set-default ANTIGEN_DEFAULT_REPO_URL \
          https://github.com/robbyrussell/oh-my-zsh.git
911cc8cb5   Shrikant Sharat   Use ADOTDIR as th...
348
      -set-default ADOTDIR $HOME/.antigen
3047bfeb7   Shrikant Sharat   Load compinit at ...
349

7af602dae   Shrikant Sharat   Minor comment edi...
350
      # Load the compinit module.
3047bfeb7   Shrikant Sharat   Load compinit at ...
351
352
353
354
      autoload -U compinit
  
      # Without the following, `compdef` function is not defined.
      compinit -i
e5dfac7ea   Shrikant Sharat   Initial commit. W...
355
356
357
358
359
  }
  
  # Same as `export $1=$2`, but will only happen if the name specified by `$1` is
  # not already set.
  -set-default () {
43bb2cef1   Shrikant Sharat   Variable declarat...
360
361
      local arg_name="$1"
      local arg_value="$2"
e5dfac7ea   Shrikant Sharat   Initial commit. W...
362
363
      eval "test -z \"\$$arg_name\" && export $arg_name='$arg_value'"
  }
a4f6e2fc8   Shrikant Sharat   Fix #2. Add `anti...
364
  -antigen-env-setup