From acd531782fc521c6af2c38154b05a36306b92093 Mon Sep 17 00:00:00 2001 From: zlg Date: Tue, 13 Mar 2018 13:16:41 -0700 Subject: Make VGSTASH_DB_LOCATION point to a file It used to point to a directory, which would then look for .vgstash.db. This behavior was kind of backwards and I don't remember why I did it that way. This change gives users more control over where they put their DB. Be sure to update your environment variable if you have it set! --- README.mdown | 28 ++++++++++++++-------------- vgstash | 13 ++++++------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/README.mdown b/README.mdown index f054ac3..d78c9ac 100644 --- a/README.mdown +++ b/README.mdown @@ -11,13 +11,13 @@ Nothing fancy like box art or finding games in a massive dropdown box. There are easy flags to track common searches, like "All games that are owned and haven't been beaten", making vgstash convenient. -Since vgstash itself is just a front-end to an SQLite database, other -interfaces to this basic database format can be built to extend the basic -concept. SQLite is supported across tons of languages and platforms, so it's -rather trivial to build another frontend to it. If that's not enough, vgstash -also supports exporting collections as YAML or pipe-delimited lines, and -importing from YAML. This makes batch-editing by a human easy with YAML, and the -raw format is great for pushing vgstash's output through pipes, as any good +Since vgstash itself is just a front-end to an SQLite database, other interfaces +to this database format can be built to extend the basic concept. SQLite is +supported across tons of languages and platforms, so it's rather trivial to +build another frontend to it. If that's not enough, vgstash also supports +exporting collections as YAML or pipe-delimited lines, and importing from YAML. +This makes batch-editing by a human easy with YAML, and the raw format is great +for pushing vgstash's output through pipes, as any good \*nix tool should. ## Data Format @@ -192,10 +192,10 @@ what you're looking for. ## Deleting For one reason or another, you may need to remove items from your game database. -The `delete` command, coupled with the game's ID, will take care of that for -you. If you want to remove *every* game from your collection, delete the -`.vgstash.db` file from your $HOME directory (or whatever `VGSTASH_DB_LOCATION` -is set to) and start over with `vgstash init`. +The `delete` command, coupled with the game's ID, will take care of that +for you. If you want to remove *every* game from your collection, delete +`$HOME/.vgstash.db` (or wherever `VGSTASH_DB_LOCATION` is set to) and start over +with `vgstash init`. # Environment Variables @@ -203,7 +203,7 @@ Customization is pretty important if you're going to manage hundreds of games. There are only a few, but they may come in handy for you! * `VGSTASH_DB_LOCATION` - Defaults to `$HOME`. A file named `.vgstash.db` will be found there. + Defaults to `$HOME/.vgstash.db`. * `VGSTASH_DEFAULT_OWNERSHIP` Can be 0 or 1. Default is 1 (yes). @@ -255,7 +255,7 @@ Here are the current goals: # Copyright -vgstash is Copyright © 2016 Ze Libertine Gamer. It is licensed under the GNU -General Public License, version 3.0. A copy of this license may be found in the +vgstash is Copyright © 2016-2018 zlg. It is licensed under the GNU General +Public License, version 3.0. A copy of this license may be found in the `COPYING` file within this project. It may also be found on the World Wide Web at http://gnu.org/licenses/gpl-3.0.html. diff --git a/vgstash b/vgstash index 3ddd7ae..253c77c 100755 --- a/vgstash +++ b/vgstash @@ -29,17 +29,16 @@ def set_env(): # This makes outside-scope referencing and assignment possible global DB_LOCATION, OWNERSHIP, PROGRESS, TABLE_WIDTH - # Precedence = $VGSTASH_DB_LOCATION, $HOME, or current directory - DB_LOCATION = os.getenv('VGSTASH_DB_LOCATION', os.getenv('HOME', os.getcwd())) + # Precedence = $VGSTASH_DB_LOCATION, $HOME/.vgstash.db + DB_LOCATION = os.getenv('VGSTASH_DB_LOCATION', os.path.join(os.getenv('HOME'), '.vgstash.db')) + print(DB_LOCATION) try: - assert(os.path.isdir(DB_LOCATION)) + assert(os.path.isfile(DB_LOCATION) and os.path.exists(DB_LOCATION)) except AssertionError: - print("VGSTASH_DB_LOCATION is not a valid directory. Unset it to fall back to $HOME, or correct the environment variable.") + print("VGSTASH_DB_LOCATION is not a file. Unset it to fall back to $HOME/.vgstash.db, or correct the environment variable.") sys.exit() - DB_LOCATION = os.path.join(DB_LOCATION, ".vgstash.db") - OWNERSHIP = int(os.getenv('VGSTASH_DEFAULT_OWNERSHIP', OWNERSHIP)) try: assert(OWNERSHIP == 0 or OWNERSHIP == 1) @@ -74,7 +73,7 @@ def init_db(args): print("The database could not be created and/or connected to.") sys.exit() except AssertionError: - print("The database already exists! Delete '%s' and init the database again." % loc) + print("The database already exists! Delete '%s' and init the database again." % DB_LOCATION) sys.exit() # Now let's run a bunch of queries! Fun... -- cgit v1.2.3-54-g00ecf