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