0.1.0 • Published 11 years ago

appdirectory v0.1.0

Weekly downloads
87,064
License
MIT
Repository
-
Last release
11 years ago

Build Status Coverage Status

AppDirectory

AppDirectory is a port of Python's appdirs module. It can be used as a small cross-platform tool to find the correct directory for an application to use for persistence. It isn't perfect, but it might be useful.

Usage

AppDirectory offers one export: the AppDirectory constructor:

var AppDirectory = require('appdirectory')
var dirs = new AppDirectory('mycoolappname')

AppDirectory can be instantiated either with a single string (the application's name) or an object containing more information about the application.

var dirs = new AppDirectory({
    appName: "mycoolapp", // the app's name, kinda self-explanatory
    appAuthor: "Superman", // The author's name, or (more likely) the name of the company/organisation producing this software.
                           // Only used on Windows, if omitted will default to appName.
    appVersion: "v6000", // The version, will be appended to certain dirs to allow for distinction between versions.
                         // If it isn't present, no version parameter will appear in the paths
    useRoaming: true, // Should AppDirectory use Window's roaming directories?  (Defaults to false)
    platform: "darwin" // You should almost never need to use this, it will be automatically determined
})

Now to get some actual paths.

dirs.userData() // e.g. /home/awesomeuser/Library/Application Support/mycoolapp on Macs
dirs.userConfig() // e.g. /home/awesomeuser/.config/mycoolapp on linux etc.
dirs.userCache() // e.g. C:\Users\awesomeuser\AppData\Local\mycoolapp\mycoolapp\Cache on Windows 7 (and Vista, I believe)
dirs.userLogs() // e.g. /home/awesomeuser/.cache/mycoolapp/log

That's pretty much all there is to it.

Todo

  • Fix site* functions
  • Test all user* functions

Known Limitations

Note: All this limitations have been fixed by virtue of removing the site* functions. The aim is to add them back in, at which point they will still exist, as one's a design decision, and the other's unfixable as far as I can tell. However, at this point, there are no known limitations to AppDirectory! (Feel free to tell me about new limitations by filing an issue.)

  • On Windows Vista, the site-config and site-data directories are hidden system directories, which may cause issues. I don't have a copy of Vista to hand to play around with how well this works, though, so YMMV.
  • On unix-likes (including those with XDG-compliance), requesting the site-config and site-data directories will return just one directory, even in cases where the XDG* variables contain more than one individual path. (Specifically, it will be the first path AppDirectory finds.)
@tf2autobot/node-steam-tradeoffer-manager@everything-registry/sub-chunk-1156homebridge-xiaomi-devicestaskcluster-clisteam-gameserversteam-user-fitchersteamstuff@clowdhaus/serverless-python-requirements@blinkmobile/blinkmrc@rtweeks/serverless-python-requirementsjslinkersql-seertinkerhubdtrade-opskins-manager@ajk8/serverless-python-requirements@bathoryr/miio@cardano-graphql/cli@celljs/python-plugin@abquintic/electron-plugins@datagica/local-settingsyt-playlist-heroyt-playlist-proyoutube-playlist-playerts_steam_user@felipejfc/mijia-io@dust2market/steam-tradeoffer-manager@dust2market/steam-user@hardyscc/serverless-python-requirements@gen-codes/cli@gemerz/miio@fuomag9/miio@indexyz/miio@innomizetech/serverless-python-requirements@kschwab/serverless-python-requirements@nodeswork/nam@malagu/python-plugin@kimsehwan96/serverless-python-requirements@hoobs/miio@oneblink/cli@nrchkb/miio@nrchkb/mijia-io@pajn/miio@slsplus/python-requirements@rifat/miiomijiamijia-iomiiomiio-fix-v7miio_qingpingmiiormiio-nicoh88miio-yeelight-xmiio-yeelight22narou-clioanda-statspb-for-desktoprpncalcserverless-python-requirementsserverless-python-requirements-bwnodemacroshomebridge-mi-waterpurihplayerhomebridge-aqara-hub-luxlive-wallpaper-ecorpkoteky@wisp-gg/steam-user@vgm-com/steam-tradeoffer-manager@yugasun/python-requirements@zalastax/nolb-appd@svyatogor/miio-yeelight-x@zpmpkg/zpmabstract-thingscardano-graphql-clidatomish-user-agent-serviceddc-serverless-python-requirementsdesktop-dimmerbosco-altbosco-coreele-updaterelectron-pluginselectron-updater-sqlseerelectron-updater-tools@sidneys/logger@sidneys/logger-v2
0.1.0

11 years ago

0.0.1

11 years ago