Code Monkey home page Code Monkey logo

cider's People

Contributors

keitaoouchi avatar kishansairam9 avatar maebert avatar msanders avatar theseubert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cider's Issues

Support XDG basedir specification

Please support the XDG basedir spec.

Defaulting to ~/.cider contributes to a cluttered home-directory full of dot-files and dot-folders.

For backward compatibility I propose checking $XDG_CONFIG_HOME first, and if no config exists there, try $HOME/.cider.

set-default is converting bool into int

When using cider set-default -bool, the given domain key is properly stored into defaults.yaml but the given domain key is not properly applied to the system. boolean true and false are converted into int.

» cider set-default -bool com.apple.desktopservices DSDontWriteNetworkStores TRUE
» defaults read com.apple.desktopservices                                        
{
    DSDontWriteNetworkStores = 1;
}
» cider set-default -bool com.apple.desktopservices DSDontWriteNetworkStores true
» defaults read com.apple.desktopservices
{
    DSDontWriteNetworkStores = 1;
}


» cider set-default com.apple.desktopservices DSDontWriteNetworkStores TRUE
» defaults read com.apple.desktopservices                                  
{
    DSDontWriteNetworkStores = 1;
}
» cider set-default com.apple.desktopservices DSDontWriteNetworkStores true
» defaults read com.apple.desktopservices                                  
{
    DSDontWriteNetworkStores = 1;
}

Expected behavior is:

» defaults write com.apple.desktopservices DSDontWriteNetworkStores true
» defaults read com.apple.desktopservices                               
{
    DSDontWriteNetworkStores = true;
}
» 

`taps` added to bootstrap.yaml are invalid

Method

Run cider missing taps

Expected Behavior

bootstrap.yaml should have valid entries for taps. In my case:

$ brew tap
blackfireio/blackfire
buo/cask-upgrade
homebrew/cask
homebrew/cask-versions
homebrew/core

Actual Behavior

Output of the taps being updated was captured, plus some other unexpected entries.

- !!python/unicode ''
- !!python/unicode '==> Auto-updated Homebrew!'
- !!python/unicode '==> Updated Formulae'
- !!python/unicode 'Updated 3 taps (homebrew/cask-versions, homebrew/core, homebrew/cask).'
- !!python/unicode 'blackfireio/blackfire'
- !!python/unicode 'buo/cask-upgrade'
- !!python/unicode 'gtk-vnc'
- !!python/unicode 'homebrew/cask'
- !!python/unicode 'homebrew/cask-versions'
- !!python/unicode 'homebrew/core'
- !!python/unicode 'radare2'

Which results in the following error:

$ cider restore
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.

Error: Invalid tap name ''
Whoops! `brew tap ` failed with code 1

Brew config outout:

HOMEBREW_VERSION: 1.7.1
ORIGIN: https://github.com/Homebrew/brew
HEAD: d6a245c05110c240e680da594c2cc6038998b82e
Last commit: 4 weeks ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 5292329db701b0085f555663121a1e8b1ffe3c6c
Core tap last commit: 7 minutes ago
HOMEBREW_PREFIX: /usr/local
CPU: quad-core 64-bit skylake
Homebrew Ruby: 2.3.7 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/bin/ruby
Clang: 10.0 build 1000
Git: 2.17.0 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
Java: 1.8.0_181
macOS: 10.13.6-x86_64
CLT: 10.0.0.0.1.1527767617
Xcode: N/A
XQuartz: N/A

Missing Brew Formula

When trying to add regular brew packages to cider, it decides to stop, because brew does not have a formula for screen.
Isn't screen bundled with OSX? Anyway, maybe there was a formula for screen before, but got removed. Still, I have this error, which I don't know how to fix. ❯ cider cask missing worked (fine).

~  
❯ cider missing
Error: No available formula for screen 
Whoops! `brew uses --installed --recursive screen` failed with code 1

~  10s

❯ brew unlinkdid not help either.

I had to remove screen and grep completely with ❯ brew remove. After that it worked fine.

Bootstrap.yml package ordering

Cider shouldn't order packages alphabetically. Some packages might need to be installed ahead of others, for example, node & npm ahead of iojs.

Install brew-cask implicitly

caskroom/cask/brew-cask should be automatically installed if a bootstrap contains any casks. This isn't too annoying now, but will be once bootstraps are divided into separate files (#2).

cider set-default to handle array values

Cider storage of defaults and applying defaults doesn't appear to support arrays.

Example usage:
defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}'

Create $HOME/.cider or output hint to create it.

Hi, thanks for your nice project.
I started cider and it crashed telling me that there is no file $HOME/.cider/bootstrap.json.
Please create the $HOME/.cider directory if it does not exist or output a hint for the user
so that one knows to create it. Sorry, if it's documented somewhere. I didn't find it.

Thanks

Generate a backup file from current state

Is there a way to automatically generate a backup file based on the current packages installed on my system?

Also, what is the difference between the cider and cyder command-line tools that get installed?

Follow XDG Base Directory Specification more closely

The spec states "$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used."

Instead of using .cider as the default directory when $XDG_CONFIG_HOME is not set, $HOME/.config/cidershould be used.

For full compliance with the spec, we'd also use $HOME/.local/share/cider instead of $/Library/Application Support/com.msanders.cider, but I'd be fine with leaving that as-is, since it is more idiomatic for OS X.

`cider restore` doesn't upgrade existing formulae

If I run cider restore on a machine I've already restored, I get a bunch of warnings like "Warning: ack-2.14 already installed" which is a little annoying but doesn't impact behavior.

But if the current version of the formula is newer than what I have installed, I get an error:

Error: redis-2.8.17 already installed
To install this version, first `brew unlink redis'
Failed to install redis. Continue? [y/N] [y/N]: 

This seems to be because cider is calling brew install instead of brew upgrade, which does what I would expect.

Allow to set environment variables in json files

Hi!
I'd like to install all my casks into /Applications, so it would be cool if there was a way to set the HOMEBREW_CASK_OPTS environment variable directly in cider.
Can you add a section to the bootstrap.json file (maybe "env") that one can use to set various environment variables?

I would normally put that into my .bashrc but that file is not there when I restore the first time.
So, something like:

"env": { "HOMEBREW_CASK_OPTS": "--appdir=/Applications", }

What do you think? Thanks.

Error installing cider via pip

Downloading/unpacking cider
  Downloading cider-1.1.2.tar.gz
  Running setup.py (path:/private/var/folders/4h/g8cpq3l174l6xrt_dsl8vl8c0000gn/T/pip_build_abach/cider/setup.py) egg_info for package cider
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/private/var/folders/4h/g8cpq3l174l6xrt_dsl8vl8c0000gn/T/pip_build_abach/cider/setup.py", line 61, in <module>
        long_description=read_description(),
      File "/private/var/folders/4h/g8cpq3l174l6xrt_dsl8vl8c0000gn/T/pip_build_abach/cider/setup.py", line 23, in read_description
        with open("README.md") as f:
    IOError: [Errno 2] No such file or directory: 'README.md'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/private/var/folders/4h/g8cpq3l174l6xrt_dsl8vl8c0000gn/T/pip_build_abach/cider/setup.py", line 61, in <module>

    long_description=read_description(),

  File "/private/var/folders/4h/g8cpq3l174l6xrt_dsl8vl8c0000gn/T/pip_build_abach/cider/setup.py", line 23, in read_description

    with open("README.md") as f:

IOError: [Errno 2] No such file or directory: 'README.md'

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /private/var/folders/4h/g8cpq3l174l6xrt_dsl8vl8c0000gn/T/pip_build_abach/cider
Storing debug log for failure in /Users/abach/.pip/pip.log

Thanks!

Use a config file format that allows comments

The JSON file format famously does not allow comments, which makes it really awkward for this use case -- these sort of configuration files should be well-commented so that you remember six months from now what you need each file for, and why you need to run each command in your cider config. Hjson is a project that defines a new standard based on JSON, but allows for comments and makes the file format much more human-friendly. YAML is also a great solution.

Lacks compatibility with brew-pip

Cider appears to lack compatibility with the brew-pip package. Whenever cider missing is run, it returns an error when attempting to capture data related to packages installed via brew-pip. To duplicate this error, run:

brew install brew-pip

then install any package from PyPi using:

brew pip pypi_package_name

and then attempt to use cider missing to generate a cider file. It should return the error:

'brew uses --installed --recursive pypi_package_name' failed with code 1

I love the idea of cider, but since it errors out each time I try to use cider missing, I am uninstalling until this bug is fixed.

Python 3 support

Cider doesn't appear to support Python 3 yet. Here's what I get when installing via pip3:

% pip3 install cider
Downloading/unpacking cider
  Downloading cider-1.1.tar.gz
  Running setup.py (path:/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py) egg_info for package cider
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py", line 17, in <module>
        version, author = [grep_attr(body, attr) for attr in ("version", "author")]
      File "/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py", line 17, in <listcomp>
        version, author = [grep_attr(body, attr) for attr in ("version", "author")]
      File "/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py", line 13, in grep_attr
        ).group(1)))
    AttributeError: 'str' object has no attribute 'decode'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py", line 17, in <module>

    version, author = [grep_attr(body, attr) for attr in ("version", "author")]

  File "/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py", line 17, in <listcomp>

    version, author = [grep_attr(body, attr) for attr in ("version", "author")]

  File "/private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider/setup.py", line 13, in grep_attr

    ).group(1)))

AttributeError: 'str' object has no attribute 'decode'

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /private/var/folders/qy/8q5_l9gd3630_xq4qsrs2r7r0000gn/T/pip_build_mplewis/cider
Storing debug log for failure in /Users/mplewis/.pip/pip.log

Unknown command: uses

cider cask missing

Error: Unknown command: uses
Whoops!brew cask uses --installed --recursive google-chromefailed with code 1

Fresh installation of OS X 10.11 with cider 1.1.8.

Parse Stdout instead of straight up copying

I noticed that cider does not really parse the output of brew, but instead copies elements into bootstrap.json.

This results in the following JSON, which, on restore, should lead to an error:

~  
❯ cat ~/.cider/bootstrap.json
{
    "casks": [
        "==> Removing legacy Tap",
        "filebot"
    ]
}
~  
❯ cider cask missing
Warning: 2 missing formulas (tip: try `brew uses --installed` to see what's using it)
==> Removing legacy Tap
filebot

Add missing items to bootstrap? [y/N] y
Success! Added ==> Removing legacy Tap to bootstrap
Success! Added filebot to bootstrap

Note that this entry comes from a special misconfiguration of my brew cask installation (I guess), but cider should really account for user errors like that.
Make it a little bit smarter and sort out entries that start with special character, because brew formulas don't use them.

Suggest homebrew-bundle as an alternative

No disrespect to cider, because I very much appreciated its facilities and your contributions, but the project seems largely dormant at this point. Would you consider suggesting homebrew-bundle as an active alternative in the README, particularly for those looking for new functionality like mas support (#36)?

Unexpected kwarg on running cider

Here's the traceback:

$ cider cask missing                                                           ▸▸▸▸▸▸▸▸▸▸
Traceback (most recent call last):
  File "/usr/local/bin/cider", line 9, in <module>
    load_entry_point('cider==1.1.1', 'console_scripts', 'cider')()
  File "/usr/local/lib/python2.7/site-packages/cider/_cli.py", line 217, in main
    cli.main(standalone_mode=False)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 473, in main
    with self.make_context(prog_name, args, **extra) as ctx:
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 402, in make_context
    ctx = Context(self, info_name=info_name, parent=parent, **extra)
TypeError: __init__() got an unexpected keyword argument 'standalone_mode'

apply-defaults has no effect on OS X 10.11

On fresh installation of OS X 10.11, cider restore and cider apply-defaults has no effect even though Success! Applied defaults is printed when an existing defaults.yaml exists with many defaults.

Attribute Error while handling No symlink with name

When no symlink is present and trying to unlink, following error is occured:

~/.cider/symlinks master*
❯ ls
zsh

~/.cider/symlinks master*
❯ cider unlink sls
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 251, in main
    cli.main(standalone_mode=False)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 991, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 26, in new_func
    return ctx.invoke(f, ctx.obj, *args[1:], **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 246, in unlink
    cider.unlink(name)
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 653, in unlink
    raise StowError("No symlink found with name: {0}".format(name))
cider.exceptions.StowError: No symlink found with name: sls

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/cider", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 269, in main
    tty.puterr(e.message, prefix="Error:")
AttributeError: 'StowError' object has no attribute 'message'

Cause of Error:
No Message attribute for StowError

Fix: kishansairam9@704f2c4
Replace e.message with e

After Fix:

~/.cider/symlinks master*
❯ cider unlink sls
Error: No symlink found with name: sls

Issue installing from pip

Using OSX 10.10.1 I am getting https://gist.github.com/anonymous/ab0b99539a2f799352c2

pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7)

If I run with pip3 it installs properly, but cider restore fails with

Traceback (most recent call last):
  File "/usr/local/bin/cider", line 9, in <module>
    load_entry_point('cider==1.1.5', 'console_scripts', 'cider')()
  File "/usr/local/lib/python3.4/site-packages/cider/_cli.py", line 251, in main
    cli.main(standalone_mode=False)
  File "/usr/local/lib/python3.4/site-packages/click/core.py", line 590, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.4/site-packages/click/core.py", line 936, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.4/site-packages/click/core.py", line 782, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.4/site-packages/click/core.py", line 416, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/click/decorators.py", line 26, in new_func
    return ctx.invoke(f, ctx.obj, *args[1:], **kwargs)
  File "/usr/local/lib/python3.4/site-packages/click/core.py", line 416, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/cider/_cli.py", line 113, in restore
    cider.restore(ignore_errors=ignore_errors)
  File "/usr/local/lib/python3.4/site-packages/cider/core.py", line 202, in restore
    self._assert_requirements()
  File "/usr/local/lib/python3.4/site-packages/cider/core.py", line 176, in _assert_requirements
    if not self._has_xcode_tools():
  File "/usr/local/lib/python3.4/site-packages/cider/core.py", line 163, in _has_xcode_tools
    os.path.join(developer_dir, "usr", "bin", "git")
  File "/usr/local/Cellar/python3/3.4.1_1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/posixpath.py", line 92, in join
    "components.") from None
TypeError: Can't mix strings and bytes in path components.
pip 1.5.6 from /usr/local/lib/python3.4/site-packages (python 3.4)

Sorry if I am missing something obvious. If you need more information let me know.

yaml.load_all is unsafe with default loader

Getting this warning of deprecation when running cider missing, cider tap missing, cider cask missing

/usr/local/lib/python3.7/site-packages/cider/_sh.py:200: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  return json.loads(contents) if is_json else yaml.load(contents)

Reason:
https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation

Related Issue:
google/mobly#561

Fix: kishansairam9@7721705
Use yaml.safe_load instead of yaml.load in _sh.py (reference)

`cider cask missing` never discovers any missing casks

cider cask missing no longer appears to function after 84f5f91 / 4c3c8e6.
It always reports Everything up to date. even when there are additional cask items that need to be added into bootstrap.yaml / bootstrap.json.

Example:

 ~/.cider ‹master› » brew cask list
araxis-merge            google-chrome           keka                    macdown                 microsoft-office        p4v                     sourcetree              visual-studio-code    
dropbox                 grandperspective        komodo-ide              makemkv                 nvalt                   paragon-ntfs            vagrant                 vlc                   
 ~/.cider ‹master› » cider cask list
araxis-merge
dropbox
grandperspective
macdown
makemkv
nvalt
p4v
paragon-ntfs
sourcetree
vagrant
vlc
 ~/.cider ‹master› » cider cask missing
Everything up to date.

Expected Result:
google-chrome, keka, komodo-ide, microsoft-office, visual-studio-code

add to bootstrap PROMPT printing lag

cider missing show Add prompt[y/N] untimely, as below,

$ cider missing
formula_a
...
formula_z

y
Add to bootstrap? [y/N] Success! Added formula_a to bootstrap
...
Success! Added formula_z to bootstrap

I think adding sys.stdout.flush() after sys.stdout.write("Add to bootstrap? [y/N] ") can solve this.

cider tap missing

Cider is a simple way of automating the configuration of brew and your favorite packages. Many of my favorite packages however don't live in default taps. A magnificent way to get around this problem would be to allow the automated addition of taps to the bootstrap.json. Cider automatically taps taps (hehe) in there first before installing the brews, so make it a little easier on us by adding this awesome feature (for lazy people with many taps).

~
❯ cider tap missing
caskroom/cask
caskroom/fonts
caskroom/unofficial
homebrew/apache
homebrew/binary
homebrew/completions
homebrew/dupes
homebrew/games
homebrew/php
homebrew/science
homebrew/versions
larsimmisch/avr

Detected new taps. Add them to the list? [y/N] y
Cider updated your taps.

Note that cider tap already shows used taps (by acting as an alias for brew tap?)

Symlinking Crashing - RuntimeError: dictionary changed size during iteration

Following Runtime Error is encountered on trying unlink

~
❯ cider addlink iterm2profiles .iterm2profiles
Success! symlinked ~/.iterm2profiles -> ~/.cider/symlinks/iterm2profiles/.iterm2profiles

~
❯ cider unlink iterm2profiles
==> Moved ~/.cider/symlinks/iterm2profiles/.iterm2profiles -> ~/.iterm2profiles
Traceback (most recent call last):
  File "/usr/local/bin/cider", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 251, in main
    cli.main(standalone_mode=False)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 991, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 26, in new_func
    return ctx.invoke(f, ctx.obj, *args[1:], **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 246, in unlink
    cider.unlink(name)
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 661, in unlink
    self.remove_symlink(name)
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 604, in remove_symlink
    return self._modify_bootstrap("symlinks", transform)
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 116, in _modify_bootstrap
    return modify_config(self.bootstrap_file, outer_transform)
  File "/usr/local/lib/python3.7/site-packages/cider/_sh.py", line 214, in modify_config
    contents = transform(copy.deepcopy(contents))
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 110, in outer_transform
    bootstrap[key] = transform(bootstrap.get(key, fallback))
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 598, in transform
    for key in symlinks.keys():
RuntimeError: dictionary changed size during iteration

~
❯ cider unlink iterm2profiles
Traceback (most recent call last):
  File "/usr/local/bin/cider", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 251, in main
    cli.main(standalone_mode=False)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 991, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 26, in new_func
    return ctx.invoke(f, ctx.obj, *args[1:], **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/cider/_cli.py", line 246, in unlink
    cider.unlink(name)
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 659, in unlink
    raise e
  File "/usr/local/lib/python3.7/site-packages/cider/core.py", line 656, in unlink
    os.rmdir(os.path.join(self.symlink_dir, name))
FileNotFoundError: [Errno 2] No such file or directory: '/Users/kishansairam9/.cider/symlinks/iterm2profiles'

Aftermath:

  • Symlinked files restored to original state before addlink is executed sucessfully 👍
  • Symlinked files delted from .cider 👍 (This is causing FileNotFoundError when running unlink again after getting RuntimeError)
  • Description of symlink is left in bootstrap.json ⚠️

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.