gina 0.1.1-alpha.93 → 0.1.1-alpha.96
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/README.md +87 -26
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/AUTHORS +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/LICENSE +0 -0
- package/framework/v0.1.1-alpha.96/VERSION +1 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/html/nolayout.html +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/html/static.html +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/img/android-chrome-192x192.png +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/img/android-chrome-512x512.png +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/img/apple-touch-icon.png +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/img/favicon-16x16.png +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/img/favicon-32x32.png +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/img/favicon.ico +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.js.map +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.min.css +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.min.css.map +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.min.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.min.js.map +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.onload.min.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/readme.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/asset/js/plugin/uuid.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/config.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/connector.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/n1ql.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/session-store.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/controller/controller.framework.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/controller/controller.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/controller/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/.travis.yml +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/LICENSE +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/deps/encoding/encoding.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/lib/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/lib/types/multipart.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/lib/types/urlencoded.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/lib/utils.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/busboy/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/dev/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/dev/lib/class.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/dev/lib/factory.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/dev/lib/tools.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/gna.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/currency.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/dist/language/en.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/dist/language/fr.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/dist/region/en.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/dist/region/fr.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/src/make.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/src/resources/currency.csv +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/src/resources/region.csv +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/locales/src/resources/region.mapping.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/mime.types +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/model/entity.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/model/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/model/template/entityFactory.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/model/template/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/file/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/file/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/file/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/intl/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/intl/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/intl/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/intl/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/storage/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/storage/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/storage/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/storage/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/validator/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/validator/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/validator/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/validator/src/form-validator.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/plugins/lib/validator/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/router.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/server.express.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/server.isaac.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/server.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/status.codes +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/config/app.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/config/routing.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/config/settings.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/config/templates.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_public/readme.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_templates/html/homepage.html +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/boilerplate/bundle_templates/html/layout/main.html +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/command/gina.bat.tpl +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/command/gina.tpl +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/conf/env.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/conf/manifest.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/conf/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/conf/settings.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/conf/statics.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/conf/templates.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/error/client/json/401.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/error/client/json/403.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/error/client/json/404.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/error/server/html/50x.html +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/error/server/json/500.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/error/server/json/503.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/core/template/extensions/logger/config.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/console.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/context.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/dateFormat.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/json/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/json/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/json/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/path.js +81 -76
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/plugins/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/plugins/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/plugins/src/api-error.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/plugins/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/prototypes.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/task.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/helpers/text.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/archiver/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/archiver/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/archiver/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/archiver/src/dep/jszip.min.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/archiver/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/aliases.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/add.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/arguments.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/copy.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/cp.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/list.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/remove.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/rename.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/restart.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/rm.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/start.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/status.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/bundle/stop.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/add.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/get.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/link-dev.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/list.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/remove.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/rm.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/set.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/unset.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/env/use.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/dot.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/get.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/init.js +1 -1
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/msg.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/open.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/restart.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/set.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/start.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/status.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/stop.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/tail.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/update.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/framework/version.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/gina-dev.1.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/gina-framework.1.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/gina.1.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/helper.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/msg.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/port/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/port/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/port/inc/scan.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/port/list.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/port/set.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/add.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/arguments.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/build.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/import.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/list.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/move.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/remove.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/rename.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/restart.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/rm.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/start.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/status.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/project/stop.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/protocol/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/protocol/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/protocol/list.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/protocol/set.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/help.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/help.txt +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/link-local.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/list.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/remove.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/rm.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/set.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/unset.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/scope/use.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cmd/view/add.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/collection/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/collection/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/collection/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/collection/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/config.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cron/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cron/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/cron/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/generator/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/LICENSE +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/example/protected_inheritance.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/example/simple_inheritance.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/inherits/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/default/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/file/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/mq/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/mq/listener.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/containers/mq/speaker.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/helper.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/logger/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/math/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/merge/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/merge/example/merge.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/merge/example/merge_2_literal objects.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/merge/example/merge_and_preserve_first.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/merge/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/merge/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/model.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/proc.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/routing/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/routing/build.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/routing/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/routing/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/session-store.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/shell.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/swig-filters/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/swig-filters/package.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/swig-filters/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/url/README.md +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/url/index.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/url/mocks.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/url/routing.json +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/url/test.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/lib/validator.js +0 -0
- package/framework/{v0.1.1-alpha.93 → v0.1.1-alpha.96}/package.json +0 -0
- package/package.json +7 -9
- package/script/post_install.js +240 -185
- package/script/pre_install.js +333 -273
- package/script/prepare_version.js +212 -93
- package/utils/helper.js +26 -9
- package/framework/v0.1.1-alpha.93/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,18 +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
|
+
}
|
|
40
|
+
|
|
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';
|
|
252
53
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
self.
|
|
256
|
-
self.
|
|
257
|
-
|
|
258
|
-
self.prefix = process.env.npm_config_prefix || self.defaultPrefix;
|
|
259
|
-
// self.prefix =
|
|
260
|
-
self.isCustomPrefix = false;
|
|
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;
|
|
261
59
|
|
|
262
|
-
//
|
|
60
|
+
// Overriding thru passed arguments
|
|
263
61
|
var args = process.argv, i = 0, len = args.length;
|
|
264
62
|
for (; i < len; ++i) {
|
|
265
63
|
if ( /^(\-g|\-\-global)$/.test(args[i]) ) {
|
|
@@ -275,42 +73,86 @@ function PreInstall() {
|
|
|
275
73
|
if ( /^\-\-prefix\=/.test(args[i] ) ) {
|
|
276
74
|
self.isCustomPrefix = true;
|
|
277
75
|
self.prefix = args[i].split(/\=/)[1];
|
|
76
|
+
self.prefix = self.prefix.replace(/^\~/, getUserHome());
|
|
278
77
|
continue;
|
|
279
78
|
}
|
|
280
79
|
}
|
|
281
80
|
|
|
282
81
|
// For local install
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
//
|
|
288
|
-
|
|
289
|
-
|
|
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
|
+
}
|
|
290
90
|
}
|
|
291
|
-
// process.env.npm_config_prefix = self.prefix;
|
|
292
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
|
+
}
|
|
106
|
+
|
|
107
|
+
// console.warn('You do not have sufficient permissions. Switching to `--prefix='+ self.optionalPrefix +'`');
|
|
108
|
+
// process.env.npm_config_prefix = self.prefix = self.optionalPrefix;
|
|
109
|
+
}
|
|
293
110
|
|
|
294
111
|
if ( self.prefix != self.defaultPrefix ) {
|
|
295
|
-
// self.prefix = process.env.npm_config_prefix.toString();
|
|
296
112
|
self.isCustomPrefix = true;
|
|
297
113
|
}
|
|
298
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
|
+
|
|
299
137
|
console.debug('self.defaultPrefix => '+ self.defaultPrefix);
|
|
138
|
+
console.debug('self.optionalPrefix => '+ self.optionalPrefix );
|
|
300
139
|
console.debug('self.prefix => '+ self.prefix);
|
|
140
|
+
console.debug('self.isCustomPrefix => ', self.isCustomPrefix);
|
|
141
|
+
// only available when running the script with NPM
|
|
301
142
|
console.debug('process.env.npm_config_prefix => '+ process.env.npm_config_prefix);
|
|
302
|
-
|
|
303
|
-
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
var init = function() {
|
|
146
|
+
|
|
147
|
+
configure();
|
|
304
148
|
|
|
305
149
|
begin(0);
|
|
306
|
-
// TODO check old framework version to be archived
|
|
307
150
|
}
|
|
308
151
|
|
|
309
152
|
/**
|
|
310
153
|
* Bebin - Will run checking tasks in order of declaration
|
|
311
154
|
* */
|
|
312
155
|
var begin = async function(i) {
|
|
313
|
-
//console.debug('i is ', i);
|
|
314
156
|
var n = 0, funct = null, functName = null;
|
|
315
157
|
for (let t in self) {
|
|
316
158
|
if ( typeof(self[t]) == 'function') {
|
|
@@ -337,10 +179,6 @@ function PreInstall() {
|
|
|
337
179
|
|
|
338
180
|
|
|
339
181
|
self.checkRequirements = async function(done) {
|
|
340
|
-
// TODO - handle windows case
|
|
341
|
-
if ( /^true$/i.test(isWin32()) ) {
|
|
342
|
-
return done( new Error('Windows in not yet fully supported. Thank you for your patience'));
|
|
343
|
-
}
|
|
344
182
|
|
|
345
183
|
var ginaHome = getUserHome() + ( isWin32() ? '\\.gina' : '/.gina' );
|
|
346
184
|
if ( self.isResetNeeded && existsSync(ginaHome) ) {
|
|
@@ -350,28 +188,23 @@ function PreInstall() {
|
|
|
350
188
|
|
|
351
189
|
// Let's temporarily install `colors` into `GINA_DIR` it will be removed by the `post_install.js` script
|
|
352
190
|
var initialDir = process.cwd();
|
|
353
|
-
|
|
354
|
-
if ( !fs.existsSync(
|
|
355
|
-
process.chdir(
|
|
191
|
+
|
|
192
|
+
if ( !fs.existsSync(self.gina +'/node_modules/colors') ) {
|
|
193
|
+
process.chdir(self.gina);
|
|
194
|
+
|
|
356
195
|
var oldConfigGlobal = process.env.npm_config_global;
|
|
357
196
|
process.env.npm_config_global=false;
|
|
358
197
|
var cmd = ( isWin32() ) ? 'npm.cmd install colors@1.4.0' : 'npm install colors@1.4.0';
|
|
359
198
|
execSync(cmd);
|
|
360
|
-
process.chdir(initialDir);
|
|
361
199
|
process.env.npm_config_global=oldConfigGlobal;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
200
|
|
|
365
|
-
|
|
366
|
-
return done();
|
|
201
|
+
process.chdir(initialDir);
|
|
367
202
|
}
|
|
368
203
|
|
|
369
|
-
self.isWin32 = isWin32();
|
|
370
204
|
|
|
371
205
|
|
|
372
206
|
console.debug('framework path: ' + self.gina);
|
|
373
|
-
console.debug('framework version path: ' + self.
|
|
374
|
-
console.debug('cwd path: ' + self.root );
|
|
207
|
+
console.debug('framework version path: ' + self.versionPath);
|
|
375
208
|
console.debug('Is this a global install: '+ self.isGlobalInstall);
|
|
376
209
|
|
|
377
210
|
done();
|
|
@@ -434,7 +267,7 @@ function PreInstall() {
|
|
|
434
267
|
// }
|
|
435
268
|
// // from `/usr/local` -> `~/.npm-global`
|
|
436
269
|
// var cmd = 'npm config set prefix '+ getUserHome() +'/.npm-global';
|
|
437
|
-
// await promisify(run)(cmd, { cwd: _(self.path), tmp:
|
|
270
|
+
// await promisify(run)(cmd, { cwd: _(self.path), tmp: getTmpDir(self.prefix);, outToProcessSTD: true })
|
|
438
271
|
// .catch(function onError(err){
|
|
439
272
|
// if (err) {
|
|
440
273
|
// console.warn('try to run: sudo ' + cmd);
|
|
@@ -446,7 +279,7 @@ function PreInstall() {
|
|
|
446
279
|
// var profilePathObj = new _(profilePath);
|
|
447
280
|
// if ( !profilePathObj.existsSync() ) {
|
|
448
281
|
// cmd = 'touch '+ profilePath;
|
|
449
|
-
// await promisify(run)(cmd, { cwd: _(self.path), tmp:
|
|
282
|
+
// await promisify(run)(cmd, { cwd: _(self.path), tmp: getTmpDir(self.prefix);, outToProcessSTD: true })
|
|
450
283
|
// .catch(function onError(err){
|
|
451
284
|
// if (err) {
|
|
452
285
|
// console.warn('try to run: sudo ' + cmd);
|
|
@@ -487,8 +320,8 @@ function PreInstall() {
|
|
|
487
320
|
|
|
488
321
|
self.checkIfGinaIsAlreadyInstalled = async function(done) {
|
|
489
322
|
|
|
490
|
-
console.debug('Checking if Gina is already installed
|
|
491
|
-
if (!self.
|
|
323
|
+
console.debug('Checking if Gina is already installed for prefix `'+ self.prefix+'`: '+ self.isGinaInstalled);
|
|
324
|
+
if (!self.isGinaInstalled) {
|
|
492
325
|
return done();
|
|
493
326
|
}
|
|
494
327
|
|
|
@@ -502,24 +335,30 @@ function PreInstall() {
|
|
|
502
335
|
return done();
|
|
503
336
|
}
|
|
504
337
|
|
|
505
|
-
var frameworkPath =
|
|
506
|
-
|
|
507
|
-
|
|
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
|
+
return done(err)
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
|
|
508
348
|
|
|
509
|
-
|
|
510
|
-
self.
|
|
511
|
-
self.
|
|
512
|
-
self.root = self.gina; // by default
|
|
349
|
+
// root
|
|
350
|
+
// self.gina = getEnvVar('GINA_DIR');
|
|
351
|
+
// self.versionPath = getEnvVar('GINA_FRAMEWORK');
|
|
513
352
|
|
|
514
353
|
// check if framework version folder is found
|
|
515
|
-
var versionsFolders = null,
|
|
354
|
+
var versionsFolders = null, frameworkFolder = null;
|
|
516
355
|
try {
|
|
517
|
-
|
|
518
|
-
console.
|
|
519
|
-
if ( !
|
|
356
|
+
frameworkFolder = _(self.gina +'/framework', true);
|
|
357
|
+
console.debug('frameworkFolder: ', frameworkFolder);
|
|
358
|
+
if ( !existsSync(frameworkFolder) ) {
|
|
520
359
|
return done();
|
|
521
360
|
}
|
|
522
|
-
versionsFolders = fs.readdirSync(
|
|
361
|
+
versionsFolders = fs.readdirSync(frameworkFolder);
|
|
523
362
|
} catch (err) {
|
|
524
363
|
// do nothing
|
|
525
364
|
}
|
|
@@ -571,13 +410,234 @@ function PreInstall() {
|
|
|
571
410
|
});
|
|
572
411
|
|
|
573
412
|
if (err) {
|
|
574
|
-
|
|
413
|
+
return done(err);
|
|
575
414
|
}
|
|
576
415
|
}
|
|
577
416
|
// It is not required to update `~/.gina/main.json` && `~/.gina/{shortVersion}/settings.json`
|
|
578
417
|
done()
|
|
579
418
|
}
|
|
580
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 = self.defaultPrefix;
|
|
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 = self.defaultPrefix;
|
|
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
|
+
|
|
581
641
|
init()
|
|
582
642
|
}
|
|
583
643
|
|