gina 0.1.1-alpha.92 → 0.1.1-alpha.95
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.
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/AUTHORS +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/LICENSE +0 -0
- package/framework/v0.1.1-alpha.95/VERSION +1 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/html/nolayout.html +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/html/static.html +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/img/android-chrome-192x192.png +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/img/android-chrome-512x512.png +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/img/apple-touch-icon.png +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/img/favicon-16x16.png +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/img/favicon-32x32.png +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/img/favicon.ico +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.js.map +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.min.css +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.min.css.map +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.min.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.min.js.map +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.onload.min.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/readme.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/asset/js/plugin/uuid.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/config.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/connector.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/n1ql.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/session-store.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/controller/controller.framework.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/controller/controller.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/controller/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/.travis.yml +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/LICENSE +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/deps/encoding/encoding.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/lib/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/lib/types/multipart.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/lib/types/urlencoded.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/lib/utils.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/busboy/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/dev/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/dev/lib/class.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/dev/lib/factory.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/dev/lib/tools.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/gna.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/currency.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/dist/language/en.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/dist/language/fr.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/dist/region/en.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/dist/region/fr.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/src/make.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/src/resources/currency.csv +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/src/resources/region.csv +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/locales/src/resources/region.mapping.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/mime.types +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/model/entity.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/model/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/model/template/entityFactory.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/model/template/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/file/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/file/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/file/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/intl/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/intl/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/intl/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/intl/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/storage/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/storage/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/storage/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/storage/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/validator/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/validator/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/validator/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/validator/src/form-validator.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/plugins/lib/validator/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/router.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/server.express.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/server.isaac.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/server.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/status.codes +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/config/app.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/config/routing.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/config/settings.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/config/templates.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_public/readme.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_templates/html/homepage.html +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/boilerplate/bundle_templates/html/layout/main.html +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/command/gina.bat.tpl +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/command/gina.tpl +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/conf/env.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/conf/manifest.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/conf/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/conf/settings.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/conf/statics.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/conf/templates.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/error/client/json/401.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/error/client/json/403.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/error/client/json/404.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/error/server/html/50x.html +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/error/server/json/500.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/error/server/json/503.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/core/template/extensions/logger/config.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/console.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/context.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/dateFormat.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/json/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/json/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/json/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/path.js +81 -76
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/plugins/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/plugins/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/plugins/src/api-error.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/plugins/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/prototypes.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/task.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/helpers/text.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/archiver/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/archiver/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/archiver/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/archiver/src/dep/jszip.min.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/archiver/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/aliases.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/add.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/arguments.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/copy.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/cp.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/list.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/remove.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/rename.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/restart.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/rm.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/start.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/status.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/bundle/stop.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/add.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/get.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/link-dev.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/list.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/remove.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/rm.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/set.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/unset.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/env/use.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/dot.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/get.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/init.js +1 -1
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/msg.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/open.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/restart.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/set.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/start.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/status.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/stop.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/tail.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/update.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/framework/version.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/gina-dev.1.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/gina-framework.1.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/gina.1.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/helper.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/msg.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/port/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/port/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/port/inc/scan.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/port/list.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/port/set.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/add.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/arguments.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/build.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/import.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/list.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/move.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/remove.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/rename.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/restart.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/rm.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/start.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/status.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/project/stop.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/protocol/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/protocol/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/protocol/list.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/protocol/set.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/help.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/help.txt +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/link-local.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/list.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/remove.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/rm.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/set.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/unset.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/scope/use.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cmd/view/add.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/collection/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/collection/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/collection/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/collection/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/config.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cron/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cron/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/cron/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/generator/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/LICENSE +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/example/protected_inheritance.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/example/simple_inheritance.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/inherits/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/default/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/file/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/mq/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/mq/listener.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/containers/mq/speaker.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/helper.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/logger/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/math/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/merge/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/merge/example/merge.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/merge/example/merge_2_literal objects.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/merge/example/merge_and_preserve_first.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/merge/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/merge/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/model.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/proc.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/routing/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/routing/build.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/routing/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/routing/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/session-store.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/shell.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/swig-filters/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/swig-filters/package.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/swig-filters/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/url/README.md +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/url/index.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/url/mocks.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/url/routing.json +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/url/test.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/lib/validator.js +0 -0
- package/framework/{v0.1.1-alpha.92 → v0.1.1-alpha.95}/package.json +0 -0
- package/package.json +18 -11
- package/script/post_install.js +260 -86
- package/script/pre_install.js +337 -273
- package/utils/helper.js +25 -9
- package/framework/v0.1.1-alpha.92/VERSION +0 -1
package/script/pre_install.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file is part of the gina
|
|
2
|
+
* This file is part of the gina pkg.
|
|
3
3
|
* Copyright (c) 2017 Rhinostone <contact@gina.io>
|
|
4
4
|
*
|
|
5
5
|
* For the full copyright and license information, please view the LICENSE
|
|
@@ -15,223 +15,6 @@ var { execSync } = require('child_process');
|
|
|
15
15
|
//var lib = require('./lib');
|
|
16
16
|
// var console = lib.logger;
|
|
17
17
|
var lib = null;
|
|
18
|
-
var isWin32 = function() {
|
|
19
|
-
return (process.platform === 'win32') ? true : false;
|
|
20
|
-
};
|
|
21
|
-
var existsSync = function(path) {
|
|
22
|
-
if ( typeof(fs.accessSync) != 'undefined' ) {
|
|
23
|
-
try {
|
|
24
|
-
fs.accessSync(path, fs.constants.F_OK);
|
|
25
|
-
return true;
|
|
26
|
-
} catch (err) {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
} else { // support for old version of nodejs
|
|
30
|
-
return fs.existsSync(path);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var isWritableSync = function(path) {
|
|
35
|
-
var canWrite = false;
|
|
36
|
-
if ( typeof(fs.accessSync) != 'undefined' ) {
|
|
37
|
-
try {
|
|
38
|
-
fs.accessSync(path, fs.constants.W_OK);
|
|
39
|
-
canWrite = true;
|
|
40
|
-
} catch (err) {
|
|
41
|
-
canWrite = false;
|
|
42
|
-
}
|
|
43
|
-
} else { // support for old version of nodejs
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
canWrite = (fs.statSync(path).mode & (fs.constants.S_IRUSR | fs.constants.S_IRGRP | fs.constants.S_IROTH));
|
|
47
|
-
} catch (err) {
|
|
48
|
-
canWrite = false
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return canWrite
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Get run\lock path
|
|
57
|
-
* @returns {string} rundir
|
|
58
|
-
* */
|
|
59
|
-
var getRunDir = function(prefix) {
|
|
60
|
-
if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
|
|
61
|
-
prefix = '/usr/local'
|
|
62
|
-
}
|
|
63
|
-
// Trying to retrieve original value if already defined
|
|
64
|
-
// Means `/usr/local/var/lock` or `/usr/local/var/run` by default.
|
|
65
|
-
var runDir = (isWin32()) ? getUserHome() + '\\.gina\\run' : prefix+'/var/lock';
|
|
66
|
-
|
|
67
|
-
if ( !isWin32() && new RegExp('^'+ prefix).test(runDir) && !isWritableSync(prefix) ) {
|
|
68
|
-
runDir = getUserHome() +'/.gina/run';
|
|
69
|
-
if ( !existsSync(runDir) ) {
|
|
70
|
-
fs.mkdirSync(runDir)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return runDir
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if ( existsSync(runDir) ) {
|
|
77
|
-
if ( !isWritableSync(runDir) ) {
|
|
78
|
-
throw new Error('location `'+ runDir +'` found but not writable !' )
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
runDir += ( isWin32() ) ? '' : '/gina'
|
|
82
|
-
if ( !existsSync(runDir) ) {
|
|
83
|
-
fs.mkdirSync(runDir)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return runDir;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
try {
|
|
90
|
-
//by default.
|
|
91
|
-
runDir = prefix+'/var';
|
|
92
|
-
if ( !existsSync(runDir) ) {
|
|
93
|
-
fs.mkdirSync(runDir)
|
|
94
|
-
}
|
|
95
|
-
runDir += '/run';
|
|
96
|
-
if ( !existsSync(runDir) ) {
|
|
97
|
-
fs.mkdirSync(runDir)
|
|
98
|
-
}
|
|
99
|
-
} catch (err) {
|
|
100
|
-
throw new Error('location error: `'+ runDir+'`\n'+ err.stack);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
runDir += ( isWin32() ) ? '\\gina' : '/gina'
|
|
104
|
-
if ( !existsSync(runDir) ) {
|
|
105
|
-
fs.mkdirSync(runDir)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return runDir;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
var getTmpDir = function(prefix) {
|
|
112
|
-
if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
|
|
113
|
-
prefix = '/usr/local'
|
|
114
|
-
}
|
|
115
|
-
// support for node 0.10.x & 0.11.x
|
|
116
|
-
var tmp = (os.tmpdir) ? os.tmpdir : function() {
|
|
117
|
-
var tmpDir = null;
|
|
118
|
-
if ( isWin32() ) {
|
|
119
|
-
tmpDir = process.env.TEMP ||
|
|
120
|
-
process.env.TMP ||
|
|
121
|
-
(process.env.SystemRoot || process.env.windir) + '\\Temp'
|
|
122
|
-
;
|
|
123
|
-
} else {
|
|
124
|
-
tmpDir = process.env.TMPDIR ||
|
|
125
|
-
process.env.TMP ||
|
|
126
|
-
process.env.TEMP ||
|
|
127
|
-
prefix+'/var/tmp'
|
|
128
|
-
;
|
|
129
|
-
|
|
130
|
-
if ( new RegExp('^'+ prefix).test(tmpDir) && !isWritableSync(prefix) ) {
|
|
131
|
-
tmpDir = getUserHome() +'/.gina/tmp';
|
|
132
|
-
if ( !existsSync(tmpDir) ) {
|
|
133
|
-
fs.mkdirSync(tmpDir)
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if ( new RegExp('^'+ prefix +'/var').test(tmpDir) && !existsSync(prefix+'/var') ) {
|
|
138
|
-
fs.mkdirSync(prefix+'/var');
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if ( !existsSync(tmpDir) ) {
|
|
143
|
-
fs.mkdirSync(tmpDir);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return tmpDir
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
return tmp()
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Get log path - %SystemRoot%\system32\winevt\logs or /
|
|
154
|
-
*
|
|
155
|
-
* @returns {string} logPath
|
|
156
|
-
* */
|
|
157
|
-
var getLogDir = function(prefix) {
|
|
158
|
-
if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
|
|
159
|
-
prefix = '/usr/local'
|
|
160
|
-
}
|
|
161
|
-
// Trying to retrieve original value if already defined
|
|
162
|
-
var logDir = null;
|
|
163
|
-
|
|
164
|
-
if ( isWin32() ) {
|
|
165
|
-
logDir = process.env.LOG ||
|
|
166
|
-
process.env.LOGS ||
|
|
167
|
-
(process.env.SystemRoot || process.env.windir) + '\\System32\\Winevt\\Logs'
|
|
168
|
-
;
|
|
169
|
-
|
|
170
|
-
if ( !logDir || logDir == '' ) {
|
|
171
|
-
throw new Error('Log directory not defined or not found !');
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
if ( !isWritableSync(logDir) ) {
|
|
175
|
-
throw new Error('Log directory found but not writable: need permissions for `'+ logDir +'`');
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
if ( !/gina$/.test(logDir) ) {
|
|
179
|
-
logDir += '\\gina'
|
|
180
|
-
}
|
|
181
|
-
} else {
|
|
182
|
-
logDir = process.env.LOGDIR ||
|
|
183
|
-
process.env.LOG ||
|
|
184
|
-
process.env.LOGS ||
|
|
185
|
-
prefix+'/var/log'
|
|
186
|
-
;
|
|
187
|
-
|
|
188
|
-
if ( new RegExp('^'+ prefix).test(logDir) && !isWritableSync(prefix) ) {
|
|
189
|
-
logDir = getUserHome() +'/.gina/log';
|
|
190
|
-
if ( !existsSync(logDir) ) {
|
|
191
|
-
fs.mkdirSync(logDir)
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
return logDir
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
if ( new RegExp('^'+ prefix +'/var').test(logDir) && !existsSync(prefix+'/var') ) {
|
|
198
|
-
fs.mkdirSync(prefix+'/var');
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
if ( !existsSync(logDir) ) {
|
|
202
|
-
fs.mkdirSync(logDir);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
if ( !/gina$/.test(logDir) ) {
|
|
206
|
-
logDir += '/gina'
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
if ( !existsSync(logDir) ) {
|
|
211
|
-
fs.mkdirSync(logDir)
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
return logDir;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
var getUserHome = function() {
|
|
218
|
-
var home = os.homedir ? os.homedir : function() {
|
|
219
|
-
var homeDir = process.env[(isWin32()) ? 'USERPROFILE' : 'HOME'];
|
|
220
|
-
|
|
221
|
-
if ( !homeDir || homeDir == '' ) {
|
|
222
|
-
throw new Error('Home directory not defined or not found !');
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
if ( !isWritableSync(homeDir) ) {
|
|
226
|
-
throw new Error('Home directory found but not writable: need permissions for `'+ homeDir +'`');
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return homeDir;
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
return home()
|
|
233
|
-
};
|
|
234
|
-
|
|
235
18
|
var helpers = null;
|
|
236
19
|
|
|
237
20
|
/**
|
|
@@ -248,14 +31,33 @@ var helpers = null;
|
|
|
248
31
|
function PreInstall() {
|
|
249
32
|
var self = {};
|
|
250
33
|
|
|
251
|
-
var
|
|
34
|
+
var configure = function() {
|
|
35
|
+
|
|
36
|
+
// TODO - handle windows case
|
|
37
|
+
if ( /^true$/i.test(isWin32()) ) {
|
|
38
|
+
throw new Error('Windows in not yet fully supported. Thank you for your patience');
|
|
39
|
+
}
|
|
252
40
|
|
|
253
|
-
self.
|
|
254
|
-
self.
|
|
255
|
-
self.
|
|
256
|
-
self.
|
|
257
|
-
|
|
41
|
+
self.isWin32 = isWin32();
|
|
42
|
+
self.isGlobalInstall = process.env.npm_config_global || false;
|
|
43
|
+
self.isResetNeeded = process.env.npm_config_reset || false;
|
|
44
|
+
self.defaultPrefix = execSync('npm config get prefix').toString().replace(/\n$/g, '');
|
|
45
|
+
var pkg = null;
|
|
46
|
+
try {
|
|
47
|
+
pkg = execSync('npm list -g gina --long --json').toString().replace(/\n$/g, '');
|
|
48
|
+
} catch(err) {
|
|
49
|
+
throw err
|
|
50
|
+
}
|
|
51
|
+
self.optionalPrefix = JSON.parse(pkg).dependencies.gina.config.optionalPrefix.replace(/^\~/, getUserHome());
|
|
52
|
+
// self.optionalPrefix = getUserHome()+'/.npm-global';
|
|
53
|
+
|
|
54
|
+
// `process.env.npm_config_prefix` is only retrieved on `npm install gina`
|
|
55
|
+
// and it should always be equal to `self.defaultPrefix`
|
|
56
|
+
self.prefix = process.env.npm_config_prefix || self.defaultPrefix;
|
|
57
|
+
self.isCustomPrefix = false;
|
|
58
|
+
self.isGinaInstalled = false;
|
|
258
59
|
|
|
60
|
+
// Overriding thru passed arguments
|
|
259
61
|
var args = process.argv, i = 0, len = args.length;
|
|
260
62
|
for (; i < len; ++i) {
|
|
261
63
|
if ( /^(\-g|\-\-global)$/.test(args[i]) ) {
|
|
@@ -271,42 +73,86 @@ function PreInstall() {
|
|
|
271
73
|
if ( /^\-\-prefix\=/.test(args[i] ) ) {
|
|
272
74
|
self.isCustomPrefix = true;
|
|
273
75
|
self.prefix = args[i].split(/\=/)[1];
|
|
76
|
+
self.prefix = self.prefix.replace(/^\~/, getUserHome());
|
|
274
77
|
continue;
|
|
275
78
|
}
|
|
276
79
|
}
|
|
277
80
|
|
|
278
|
-
//
|
|
81
|
+
// For local install
|
|
82
|
+
console.debug('self.isGlobalInstall => '+ self.isGlobalInstall);
|
|
83
|
+
if ( !self.isGlobalInstall ) {
|
|
84
|
+
console.warn('Local installation is not fully supported at the moment.');
|
|
85
|
+
console.warn('You are encouraged to use `npm install -g gina`\nor, if you are trying to link gina to your project, use `npm link gina` if Gina has already been installed globally\n');
|
|
86
|
+
// Just in case someone is trying to run pre_install from the `gina` module
|
|
87
|
+
if (!/node\_modules(\\\\|\/)gina$/.test(process.cwd())) {
|
|
88
|
+
self.prefix = process.cwd();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// checking permission
|
|
93
|
+
var hasPermissionsForBin = isWritableSync(self.prefix + ( isWin32() ? '\\' : '/' ) + 'bin');
|
|
94
|
+
var hasPermissionsForLib = isWritableSync(self.prefix + ( isWin32() ? '\\' : '/' ) + 'lib');
|
|
95
|
+
var hasPermissionsForVar = isWritableSync(self.prefix + ( isWin32() ? '\\' : '/' ) + 'var');
|
|
96
|
+
if ( !hasPermissionsForBin || !hasPermissionsForLib || !hasPermissionsForVar) {
|
|
97
|
+
if (!hasPermissionsForBin) {
|
|
98
|
+
console.warn('Path not accessible or missing: '+ self.prefix + ( isWin32() ? '\\' : '/' ) + 'bin')
|
|
99
|
+
}
|
|
100
|
+
if (!hasPermissionsForLib) {
|
|
101
|
+
console.warn('Path not accessible or missing: '+ self.prefix + ( isWin32() ? '\\' : '/' ) + 'lib')
|
|
102
|
+
}
|
|
103
|
+
if (!hasPermissionsForVar) {
|
|
104
|
+
console.warn('Path not accessible or missing: '+ self.prefix + ( isWin32() ? '\\' : '/' ) + 'var')
|
|
105
|
+
}
|
|
279
106
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
// process.env.npm_config_prefix
|
|
283
|
-
// &&
|
|
284
|
-
self.prefix != process.env.npm_config_prefix
|
|
285
|
-
) {
|
|
286
|
-
// self.prefix = process.env.npm_config_prefix.toString();
|
|
287
|
-
self.isCustomPrefix = true;
|
|
107
|
+
console.warn('You do not have sufficient permissions. Switching to `--prefix='+ self.optionalPrefix +'`');
|
|
108
|
+
process.env.npm_config_prefix = self.prefix = self.optionalPrefix;
|
|
288
109
|
}
|
|
289
110
|
|
|
290
|
-
if (
|
|
291
|
-
self.
|
|
292
|
-
// self.root = process.cwd(); // project path
|
|
293
|
-
// self.tmpDir = os.tmpdir(); // default tmp path
|
|
294
|
-
// console.error('local installation is not supported for this version at the moment.');
|
|
295
|
-
// console.info('please use `npm install -g gina`\n or\nif you are trying to link gina to your project, use `npm link gina` if Gina has already been installed');
|
|
296
|
-
// process.exit(1);
|
|
111
|
+
if ( self.prefix != self.defaultPrefix ) {
|
|
112
|
+
self.isCustomPrefix = true;
|
|
297
113
|
}
|
|
114
|
+
|
|
115
|
+
self.gina = __dirname +'/..';
|
|
116
|
+
// tying to figure out if gina is already install the given prefix
|
|
117
|
+
// var hasFoundGina = execSync('npm list -g gina --long --json').toString().replace(/\n$/g, '');
|
|
118
|
+
var hasFoundGina = pkg;
|
|
119
|
+
try {
|
|
120
|
+
hasFoundGina = JSON.parse(hasFoundGina);
|
|
121
|
+
if ( hasFoundGina.dependencies && typeof(hasFoundGina.dependencies.gina) != 'undefined' ) {
|
|
122
|
+
self.isGinaInstalled = true;
|
|
123
|
+
self.versionPath = self.gina;
|
|
124
|
+
self.versionPath += (isWin32()) ? '\\framework\\' : '/framework/';
|
|
125
|
+
self.versionPath += 'v'+ hasFoundGina.dependencies.gina.version;
|
|
126
|
+
|
|
127
|
+
console.debug('Install path => '+ hasFoundGina.dependencies.gina.path);
|
|
128
|
+
|
|
129
|
+
// OK ... found installed gina but on a different prefix
|
|
130
|
+
// In this case, let's assume that it is not really installed
|
|
131
|
+
if ( !new RegExp('^'+ self.prefix).test(hasFoundGina.dependencies.gina.path) ) {
|
|
132
|
+
self.isGinaInstalled = false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} catch (err) {}
|
|
136
|
+
|
|
137
|
+
console.debug('self.defaultPrefix => '+ self.defaultPrefix);
|
|
138
|
+
console.debug('self.optionalPrefix => '+ self.optionalPrefix );
|
|
298
139
|
console.debug('self.prefix => '+ self.prefix);
|
|
140
|
+
console.debug('self.isCustomPrefix => ', self.isCustomPrefix);
|
|
141
|
+
// only available when running the script with NPM
|
|
142
|
+
console.debug('process.env.npm_config_prefix => '+ process.env.npm_config_prefix);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
var init = function() {
|
|
299
146
|
|
|
147
|
+
configure();
|
|
300
148
|
|
|
301
149
|
begin(0);
|
|
302
|
-
// TODO check old framework version to be archived
|
|
303
150
|
}
|
|
304
151
|
|
|
305
152
|
/**
|
|
306
153
|
* Bebin - Will run checking tasks in order of declaration
|
|
307
154
|
* */
|
|
308
155
|
var begin = async function(i) {
|
|
309
|
-
//console.debug('i is ', i);
|
|
310
156
|
var n = 0, funct = null, functName = null;
|
|
311
157
|
for (let t in self) {
|
|
312
158
|
if ( typeof(self[t]) == 'function') {
|
|
@@ -333,10 +179,6 @@ function PreInstall() {
|
|
|
333
179
|
|
|
334
180
|
|
|
335
181
|
self.checkRequirements = async function(done) {
|
|
336
|
-
// TODO - handle windows case
|
|
337
|
-
if ( /^true$/i.test(isWin32()) ) {
|
|
338
|
-
return done( new Error('Windows in not yet fully supported. Thank you for your patience'));
|
|
339
|
-
}
|
|
340
182
|
|
|
341
183
|
var ginaHome = getUserHome() + ( isWin32() ? '\\.gina' : '/.gina' );
|
|
342
184
|
if ( self.isResetNeeded && existsSync(ginaHome) ) {
|
|
@@ -346,28 +188,23 @@ function PreInstall() {
|
|
|
346
188
|
|
|
347
189
|
// Let's temporarily install `colors` into `GINA_DIR` it will be removed by the `post_install.js` script
|
|
348
190
|
var initialDir = process.cwd();
|
|
349
|
-
|
|
350
|
-
if ( !fs.existsSync(
|
|
351
|
-
process.chdir(
|
|
191
|
+
|
|
192
|
+
if ( !fs.existsSync(self.gina +'/node_modules/colors') ) {
|
|
193
|
+
process.chdir(self.gina);
|
|
194
|
+
|
|
352
195
|
var oldConfigGlobal = process.env.npm_config_global;
|
|
353
196
|
process.env.npm_config_global=false;
|
|
354
197
|
var cmd = ( isWin32() ) ? 'npm.cmd install colors@1.4.0' : 'npm install colors@1.4.0';
|
|
355
198
|
execSync(cmd);
|
|
356
|
-
process.chdir(initialDir);
|
|
357
199
|
process.env.npm_config_global=oldConfigGlobal;
|
|
358
|
-
}
|
|
359
200
|
|
|
360
|
-
|
|
361
|
-
if ( !fs.existsSync(frameworkPath +'/node_modules/gina') ) {
|
|
362
|
-
return done();
|
|
201
|
+
process.chdir(initialDir);
|
|
363
202
|
}
|
|
364
203
|
|
|
365
|
-
self.isWin32 = isWin32();
|
|
366
204
|
|
|
367
205
|
|
|
368
206
|
console.debug('framework path: ' + self.gina);
|
|
369
|
-
console.debug('framework version path: ' + self.
|
|
370
|
-
console.debug('cwd path: ' + self.root );
|
|
207
|
+
console.debug('framework version path: ' + self.versionPath);
|
|
371
208
|
console.debug('Is this a global install: '+ self.isGlobalInstall);
|
|
372
209
|
|
|
373
210
|
done();
|
|
@@ -430,7 +267,7 @@ function PreInstall() {
|
|
|
430
267
|
// }
|
|
431
268
|
// // from `/usr/local` -> `~/.npm-global`
|
|
432
269
|
// var cmd = 'npm config set prefix '+ getUserHome() +'/.npm-global';
|
|
433
|
-
// await promisify(run)(cmd, { cwd: _(self.path), tmp:
|
|
270
|
+
// await promisify(run)(cmd, { cwd: _(self.path), tmp: getTmpDir(self.prefix);, outToProcessSTD: true })
|
|
434
271
|
// .catch(function onError(err){
|
|
435
272
|
// if (err) {
|
|
436
273
|
// console.warn('try to run: sudo ' + cmd);
|
|
@@ -442,7 +279,7 @@ function PreInstall() {
|
|
|
442
279
|
// var profilePathObj = new _(profilePath);
|
|
443
280
|
// if ( !profilePathObj.existsSync() ) {
|
|
444
281
|
// cmd = 'touch '+ profilePath;
|
|
445
|
-
// await promisify(run)(cmd, { cwd: _(self.path), tmp:
|
|
282
|
+
// await promisify(run)(cmd, { cwd: _(self.path), tmp: getTmpDir(self.prefix);, outToProcessSTD: true })
|
|
446
283
|
// .catch(function onError(err){
|
|
447
284
|
// if (err) {
|
|
448
285
|
// console.warn('try to run: sudo ' + cmd);
|
|
@@ -483,8 +320,8 @@ function PreInstall() {
|
|
|
483
320
|
|
|
484
321
|
self.checkIfGinaIsAlreadyInstalled = async function(done) {
|
|
485
322
|
|
|
486
|
-
console.debug('Checking if Gina is already installed
|
|
487
|
-
if (!self.
|
|
323
|
+
console.debug('Checking if Gina is already installed for prefix `'+ self.prefix+'`: '+ self.isGinaInstalled);
|
|
324
|
+
if (!self.isGinaInstalled) {
|
|
488
325
|
return done();
|
|
489
326
|
}
|
|
490
327
|
|
|
@@ -498,24 +335,30 @@ function PreInstall() {
|
|
|
498
335
|
return done();
|
|
499
336
|
}
|
|
500
337
|
|
|
501
|
-
var frameworkPath =
|
|
502
|
-
|
|
503
|
-
|
|
338
|
+
var frameworkPath = self.versionPath;
|
|
339
|
+
try {
|
|
340
|
+
helpers = require(self.gina+ '/utils/helper');
|
|
341
|
+
lib = require('./lib');
|
|
342
|
+
console = lib.logger;
|
|
343
|
+
} catch (err) {
|
|
344
|
+
throw err
|
|
345
|
+
}
|
|
346
|
+
|
|
504
347
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
self.gina
|
|
508
|
-
self.
|
|
348
|
+
|
|
349
|
+
// root
|
|
350
|
+
// self.gina = getEnvVar('GINA_DIR');
|
|
351
|
+
// self.versionPath = getEnvVar('GINA_FRAMEWORK');
|
|
509
352
|
|
|
510
353
|
// check if framework version folder is found
|
|
511
|
-
var versionsFolders = null,
|
|
354
|
+
var versionsFolders = null, frameworkFolder = null;
|
|
512
355
|
try {
|
|
513
|
-
|
|
514
|
-
console.
|
|
515
|
-
if ( !
|
|
356
|
+
frameworkFolder = _(self.gina +'/framework', true);
|
|
357
|
+
console.debug('frameworkFolder: ', frameworkFolder);
|
|
358
|
+
if ( !existsSync(frameworkFolder) ) {
|
|
516
359
|
return done();
|
|
517
360
|
}
|
|
518
|
-
versionsFolders = fs.readdirSync(
|
|
361
|
+
versionsFolders = fs.readdirSync(frameworkFolder);
|
|
519
362
|
} catch (err) {
|
|
520
363
|
// do nothing
|
|
521
364
|
}
|
|
@@ -574,6 +417,227 @@ function PreInstall() {
|
|
|
574
417
|
done()
|
|
575
418
|
}
|
|
576
419
|
|
|
420
|
+
var isWin32 = function() {
|
|
421
|
+
return (process.platform === 'win32') ? true : false;
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
var existsSync = function(path) {
|
|
425
|
+
if ( fs.accessSync && typeof(fs.accessSync) != 'undefined' ) {
|
|
426
|
+
try {
|
|
427
|
+
fs.accessSync(path, fs.constants.F_OK);
|
|
428
|
+
return true;
|
|
429
|
+
} catch (err) {
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
} else { // support for old version of nodejs
|
|
433
|
+
return fs.existsSync(path);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
var isWritableSync = function(path) {
|
|
438
|
+
var canWrite = false;
|
|
439
|
+
if ( fs.accessSync && typeof(fs.accessSync) != 'undefined' ) {
|
|
440
|
+
try {
|
|
441
|
+
fs.accessSync(path, fs.constants.W_OK);
|
|
442
|
+
canWrite = true;
|
|
443
|
+
} catch (err) {
|
|
444
|
+
canWrite = false;
|
|
445
|
+
}
|
|
446
|
+
} else { // support for old version of nodejs
|
|
447
|
+
|
|
448
|
+
try {
|
|
449
|
+
canWrite = (fs.statSync(path).mode & (fs.constants.S_IRUSR | fs.constants.S_IRGRP | fs.constants.S_IROTH));
|
|
450
|
+
} catch (err) {
|
|
451
|
+
canWrite = false
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
return canWrite
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Get run\lock path
|
|
460
|
+
* @returns {string} rundir
|
|
461
|
+
* */
|
|
462
|
+
var getRunDir = function(prefix) {
|
|
463
|
+
if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
|
|
464
|
+
prefix = self.defaultPrefix;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
// Trying to retrieve original value if already defined
|
|
468
|
+
// Means `/usr/local/var/lock` or `/usr/local/var/run` by default.
|
|
469
|
+
var runDir = (isWin32()) ? getUserHome() + '\\.gina\\run' : prefix+'/var/lock';
|
|
470
|
+
|
|
471
|
+
if ( !isWin32() && new RegExp('^'+ prefix).test(runDir) && !isWritableSync(prefix) ) {
|
|
472
|
+
runDir = getUserHome() +'/.gina/run';
|
|
473
|
+
if ( !existsSync(runDir) ) {
|
|
474
|
+
fs.mkdirSync(runDir)
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
return runDir
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
if ( existsSync(runDir) ) {
|
|
481
|
+
if ( !isWritableSync(runDir) ) {
|
|
482
|
+
throw new Error('location `'+ runDir +'` found but not writable !' )
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
runDir += ( isWin32() ) ? '' : '/gina'
|
|
486
|
+
if ( !existsSync(runDir) ) {
|
|
487
|
+
fs.mkdirSync(runDir)
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
return runDir;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
try {
|
|
494
|
+
//by default.
|
|
495
|
+
runDir = prefix+'/var';
|
|
496
|
+
if ( !existsSync(runDir) ) {
|
|
497
|
+
fs.mkdirSync(runDir)
|
|
498
|
+
}
|
|
499
|
+
runDir += '/run';
|
|
500
|
+
if ( !existsSync(runDir) ) {
|
|
501
|
+
fs.mkdirSync(runDir)
|
|
502
|
+
}
|
|
503
|
+
} catch (err) {
|
|
504
|
+
throw new Error('location error: `'+ runDir+'`\n'+ err.stack);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
if (self.optionalPrefix != prefix) {
|
|
508
|
+
runDir += ( isWin32() ) ? '\\gina' : '/gina'
|
|
509
|
+
if ( !existsSync(runDir) ) {
|
|
510
|
+
fs.mkdirSync(runDir)
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
return runDir;
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
var getTmpDir = function(prefix) {
|
|
518
|
+
if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
|
|
519
|
+
prefix = '/usr/local'
|
|
520
|
+
}
|
|
521
|
+
// support for node 0.10.x & 0.11.x
|
|
522
|
+
var tmp = (os.tmpdir) ? os.tmpdir : function() {
|
|
523
|
+
var tmpDir = null;
|
|
524
|
+
if ( isWin32() ) {
|
|
525
|
+
tmpDir = process.env.TEMP ||
|
|
526
|
+
process.env.TMP ||
|
|
527
|
+
(process.env.SystemRoot || process.env.windir) + '\\Temp'
|
|
528
|
+
;
|
|
529
|
+
} else {
|
|
530
|
+
tmpDir = process.env.TMPDIR ||
|
|
531
|
+
process.env.TMP ||
|
|
532
|
+
process.env.TEMP ||
|
|
533
|
+
prefix+'/var/tmp'
|
|
534
|
+
;
|
|
535
|
+
|
|
536
|
+
if ( new RegExp('^'+ prefix).test(tmpDir) && !isWritableSync(prefix) ) {
|
|
537
|
+
tmpDir = getUserHome() +'/.gina/tmp';
|
|
538
|
+
if ( !existsSync(tmpDir) ) {
|
|
539
|
+
fs.mkdirSync(tmpDir)
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
if ( new RegExp('^'+ prefix +'/var').test(tmpDir) && !existsSync(prefix+'/var') ) {
|
|
544
|
+
fs.mkdirSync(prefix+'/var');
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
if ( !existsSync(tmpDir) ) {
|
|
549
|
+
fs.mkdirSync(tmpDir);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
return tmpDir
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
return tmp()
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Get log path - %SystemRoot%\system32\winevt\logs or /
|
|
560
|
+
*
|
|
561
|
+
* @returns {string} logPath
|
|
562
|
+
* */
|
|
563
|
+
var getLogDir = function(prefix) {
|
|
564
|
+
if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
|
|
565
|
+
prefix = '/usr/local'
|
|
566
|
+
}
|
|
567
|
+
// Trying to retrieve original value if already defined
|
|
568
|
+
var logDir = null;
|
|
569
|
+
|
|
570
|
+
if ( isWin32() ) {
|
|
571
|
+
logDir = process.env.LOG ||
|
|
572
|
+
process.env.LOGS ||
|
|
573
|
+
(process.env.SystemRoot || process.env.windir) + '\\System32\\Winevt\\Logs'
|
|
574
|
+
;
|
|
575
|
+
|
|
576
|
+
if ( !logDir || logDir == '' ) {
|
|
577
|
+
throw new Error('Log directory not defined or not found !');
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
if ( !isWritableSync(logDir) ) {
|
|
581
|
+
throw new Error('Log directory found but not writable: need permissions for `'+ logDir +'`');
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
if ( !/gina$/.test(logDir) ) {
|
|
585
|
+
logDir += '\\gina'
|
|
586
|
+
}
|
|
587
|
+
} else {
|
|
588
|
+
logDir = process.env.LOGDIR ||
|
|
589
|
+
process.env.LOG ||
|
|
590
|
+
process.env.LOGS ||
|
|
591
|
+
prefix+'/var/log'
|
|
592
|
+
;
|
|
593
|
+
|
|
594
|
+
if ( new RegExp('^'+ prefix).test(logDir) && !isWritableSync(prefix) ) {
|
|
595
|
+
logDir = getUserHome() +'/.gina/log';
|
|
596
|
+
if ( !existsSync(logDir) ) {
|
|
597
|
+
fs.mkdirSync(logDir)
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
return logDir
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
if ( new RegExp('^'+ prefix +'/var').test(logDir) && !existsSync(prefix+'/var') ) {
|
|
604
|
+
fs.mkdirSync(prefix+'/var');
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
if ( !existsSync(logDir) ) {
|
|
608
|
+
fs.mkdirSync(logDir);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
if ( !/gina$/.test(logDir) && self.optionalPrefix != prefix ) {
|
|
612
|
+
logDir += '/gina'
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
if ( !existsSync(logDir) ) {
|
|
617
|
+
fs.mkdirSync(logDir)
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
return logDir;
|
|
621
|
+
};
|
|
622
|
+
|
|
623
|
+
var getUserHome = function() {
|
|
624
|
+
var home = os.homedir ? os.homedir : function() {
|
|
625
|
+
var homeDir = process.env[(isWin32()) ? 'USERPROFILE' : 'HOME'];
|
|
626
|
+
|
|
627
|
+
if ( !homeDir || homeDir == '' ) {
|
|
628
|
+
throw new Error('Home directory not defined or not found !');
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
if ( !isWritableSync(homeDir) ) {
|
|
632
|
+
throw new Error('Home directory found but not writable: need permissions for `'+ homeDir +'`');
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
return homeDir;
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
return home()
|
|
639
|
+
};
|
|
640
|
+
|
|
577
641
|
init()
|
|
578
642
|
}
|
|
579
643
|
|