Thread Previous • Date Previous • Date Next • Thread Next |
hi guys. it will take me a day or two to bring the front end to some good shape so that we could start working on it in bzr. now i'd like to show you some basic commands that the front end will support. i call it dpm. and here's a console dump: $ dpm help dpm should be invoked using this format: dpm <command> [<arguments>] where <command> is one of the following: help - view short description of dpm usage, open - open a package category, close - close a previously open package category, list - output a list of items inside a package category, create - add a category or package to local database, destroy - remove a category or package from local database, read - show description of a category or package, write - update description of a category or package, install - install a category or package, remove - remove a category or package. you can type 'gpm help <command>' to view description of a specific command. $ and here's an explanation. first of all a (local/central) database will contain a treelike hierarchy of packages and package categories - much like a filesystem. currently dpm supports absolute paths (e.g. /category/package) and a subset of relative paths - e.g. ./category/package but not ../category/../../package. system administrators will be free to do everything they want with local databases. dpm will provide a way to share some part or entire configuration over internet and to synchronize with our central database or other databases. the central database will be hosted on our website and clients will connect to it using a webservice. for now we will concentrate on synchronization and later we will talk about sharing. i mean if i'm an opengl guy and i know what is needed to develop opengl apps in c++ i could create a category '/programming/opengl/c++' in my local database, populate it with relevant items and share it with the entire community. now back to the commands. 'open' works much like 'cd'. it updates DPM_CURRENT_LOCATION environment variable which is used as a prefix for relative paths. 'close' unsets DPM_CURRENT_LOCATION. when it's not set current location is '/' and relative paths are resolved relative to the root. 'create' works this way: $ dpm create <name> [title=]<title> [info=]<info> ... if <name> ends with a forward slash then it's treated as a category name - otherwise as a package name. i'll provide more info about available fields as soon as it's possible. i think that 'destroy' doesn't need an explanation. it just deletes approp. record from the database. 'read' either reads all the fields for a given <name> or if supplied by a list of field names fetches and displays only those. 'write' allows you to update either entire record or certain fields only. 'dpm write <name> name=<new_name>' can be used to rename a package or category. install/remove are quite self-explanatory. a real-world example: $ dpm open /programming/languages/c/compilers $ dpm list cc gcc $ dpm create mycc title="My C Compiler" info="blah blah blah" version=... $ dpm list cc gcc mycc $ dpm install mycc ... current progress: help, open, close - done. list - almost done. create, destroy, read, write - half done. install, remove - i will make some additional research before implementing them. about downloading: currently all debian utilities don't provide any way to stop/resume/control downloading so if you're downloading your favorite movie but suddenly you decide to update your system you can be sure the the first download will either break or its speed will drop down to almost zero. all our front ends must provide a way to stop/pause downloading. how installation works: dpm reads approp. database record, extracts debian repo url, downloads a package and passes it to dpkg. pretty simple. maybe i will use apt in some way to handle repository catalogs, certificates etc. this is currently what i'm trying to learn about. conclusion: it's just a sketch and many things will be changed but we just need to start with something. so how do you like it? regards, jay
Thread Previous • Date Previous • Date Next • Thread Next |