typicode/hotel

Best way to sync config & servers across machines?

Open

#75 opened on Apr 12, 2016

View on GitHub
 (1 comment) (1 reaction) (0 assignees)JavaScript (474 forks)batch import
help wanted

Repository metrics

Stars
 (9,939 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

In the past I usually put all configs into my dot-files repo and then symlink them into my user directory. This way all of my machine's configs are tracked together.

This doesn't seem to work since Hotel is checking for a directory (stat.isDirectory()). Since Hotel doesn't believe a directory exists, it tries to create the directory (which of course fails due to a conflict with the symlink).

Have others come up with a better solution for syncing Hotel config/servers across machines? Or would we need to refactor how hotel checks for existing configs?


To reproduce

  • create new directory
  • move all files from ~/.hotel into the new directory
  • create a symlink in your user directory ~ called .hotel that points to the newly created directory
  • $ hotel start
➜  angular-json-calendar git:(master) hotel start
/usr/local/lib/node_modules/hotel/node_modules/mkdirp/index.js:92
                if (!stat.isDirectory()) throw err0;
                                         ^

Error: EEXIST: file already exists, mkdir '/Users/bc/.hotel'
    at Error (native)
    at Object.fs.mkdirSync (fs.js:794:18)
    at Function.sync (/usr/local/lib/node_modules/hotel/node_modules/mkdirp/index.js:71:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/hotel/lib/conf.js:15:8)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)

Contributor guide