Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.214.451 Times

nappingcat 0.4

Company: Chris Dickinson
Date Added: July 07, 2013  |  Visits: 266

nappingcat

Report Broken Link
Printer Friendly Version


Product Homepage
Download (41 downloads)



nappingcat is a django-inspired framework for routing single-user SSH calls.<br /><br />Useful for implementing software like gitosis.<br /><br />Installation<br /><br /># on the remote:<br />sudo pip install nappingcat<br />useradd -m -U -s/bin/bash -r git<br />sudo su git<br />nappingcat_initconf<br />cat id_rsa.pub > nappingcat_createsuperuser admin<br /><br /># on your local machine<br />sudo pip install -e git+git://github.com/chrisdickinson/thundercat#egg=thundercat<br />thundercat addremote < nickname > < git@remoteurl.com ><br />thundercat add_permission admin kittygit create<br /><br /># now if you cd into a git repo...<br />thundercat create_repo somerepo<br /># it will create the repo on the remote server, and<br /># ask if you want to add a remote.<br /><br />Developer comments<br /><br />For a while now i've been using gitosis -- it's really nice! but really, i had no idea how it worked. so over the last week i've been picking it apart, and i found that really, it's exposing a limited API around git using the ~/.ssh/authorized_keys file to automatically funnel all incoming commands through gitosis-serve, which then checks to see if everything looks kosher before sending things back through git. this is pretty cool! it'd be great if it had a little more functionality, though. nothing crazy -- no branch level permissions or anything -- just a bit more of the sugar from github proper. like being able to create repositories without having to edit a flat file, or being able to fork existing repositories.<br /><br />I realized that i really just wanted a way to write an extensible API for a single-user ssh system. it still seems weird, worded like that, but bare with me.<br /><br />This is the result, at the moment -- it's not done! it's experimental! nappingcat works on the same principle as gitosis, minus some core functionality at the moment. every ssh command coming through the user it's configured under will be passed through a command router that looks a lot like something you'd see in a django app.<br /><br />For example, from kittygit(the app I wrote as a proof-of-concept):<br /><br />From nappingcat.patterns import patterns<br /><br />cmdpatterns = patterns('kittygit.handlers',<br /> (r'^kitty-git fork '(?Pw+).git'', 'fork_repo'),<br /> (r'^kitty-git create-repo '(?P[w\.]+)'', 'create_repo'),<br /> (r'^git(?P[-a-zA-Z_0-9s]+)', 'handle_git'),<br />)<br /><br />Any ssh command that comes through will pass through those regexen until it finds a match, and then it'll delegate out to that function (that looks like the following:)<br /><br />def handle_git(request, action):<br /> # do things<br /> pass<br /><br />Now, they're not required to return anything -- i'm leaning towards having whatever is returned passed back out through sys.stderr -- but you can see that a request object is passed in, and it contains the following:<br /><br />request.user # a string for the received username<br />request.settings # a configparser instance of the settings file<br />request.command # the original command intercepted<br />request.std{in,out,err} # the std streams<br />request.auth_backend # a copy of the auth backend for the session<br /><br />the settings are loaded from ~/nappingcat.conf. An example looks like the following:<br /><br />[kittyconfig]<br />router = kittygit.patterns<br />auth = nappingcat.contrib.sleazy_auth.SleazyAuth<br />paths =<br /> /Users/chris/projects/nappingcat<br /> /Users/chris/projects/kittygit<br /><br />The router parameter defines a python module from which a variable named cmdpatterns can be imported. it looks like the above!<br /><br />The auth parameter defines a module to use for authentication. Right now it only has one backend -- 'sleazy_auth', which just says "yes" to everything. this is a big TODO.<br /><br />Note that you can nest cmdpatterns like in django:<br /><br />from nappingcat.patterns import patterns, include<br />cmdpatterns = patterns('',<br /> (r'^', include('kittygit.patterns')),<br />)<br /><br />So you can build up api's out of separate apps.<br /><br />Again, it's very very very beta.

Requirements: No special requirements
Platforms: *nix, Linux
Keyword: Backend Cmdpatterns Command Create Defines Gitosis I039ve It039s Module Nappingcat Parameter Passed Settings
Users rating: 0/10

License: Freeware Size: 20.48 KB
USER REVIEWS
More Reviews or Write Review


NAPPINGCAT RELATED
Modules  -  send order html email 4.0
If you want to customize your e mail reception (order, confirmation command, create an account), the add on allow that.
 
Modules  -  Views Showcase 6.x-2.3
The Views Showcase can be used to create very elegant and beautiful Showcases to display content you may want to highlight in your site.This module integrates with Views module, so you can use any content type and fields to be displayed as...
20.48 KB  
Audio Tools  -  MikMod Utilities 0.2
MikMod Utilities is collection of command line tools for manipulating the module sound files that are typically produced by Soundtracker, Protracker and other tools. MikMod Utilities contains the following tools: mmuinfo gives information...
51.2 KB  
Networking  -  T-HTB manager 1.0
T-HTB FREE web interface, built in PHP, simple Java Script, Ajax, Nested set model MySQL, rrd graph, create tc command using iptables CLASSIFY.
153.6 KB  
Libraries  -  AFS::Command::BOS 1.7
AFS::Command::BOS is a OO API to the AFS bos command. SYNOPSIS use AFS::Command::BOS; my $bos = AFS::Command::BOS->new(); my $bos = AFS::Command::BOS->new ( command => $path_to_your_bos_binary, ); my $bos = AFS::Command::BOS->new (...
77.82 KB  
Content Management  -  HBcms 0.8.7
Features of HBcms:- HBcms is a PHP+Mysql based Content Management System. Fully used PEAR and Smarty.- Frontend: Automatic published to staticly HTML pages; Automatic recreated HTML pages daily by javascript; Automatic used web server 404 error...
4.17 MB  
Utilities  -  deb-install 0.6.2
deb-install is a (big) shellskript, that works on top of the package management tools provided by the debian project. The goal is to create one command that installs any package into your system, or provides information about any package,...
30.72 KB  
Automation Tools  -  Create SQLite Database 1.0
Create SQLite Database is a free AppleScript based Automator action that will create a new SQLite database using the data passed from the previous action and the list of field names input by the user. The installer also includes the...
133.12 KB  
Programming  -  distPND 0.1
This project provides Distutils commands that can be used to create PND files for the Pandora handheld. Two commands are provided: gen_pxml and bdist_pnd. gen_pxml will generate a PXML file based on information contained in the setup...
10.24 KB  
Libraries  -  Getopt::Clade 0.0.1
Getopt::Clade is a Perl module with command-Line Argument Declaration Engine. This module is a placeholder for the real Getopt::Clade module. The module was supposed to be released by July 2005, to support the book "Perl Best Practices"....
3.07 KB  
NEW DOWNLOADS IN LINUX SOFTWARE, PROGRAMMING
Linux Software  -  EasyEDA PCB Designer for Linux 2.0.0
EasyEDA, a great web based EDA(Electronics Design Automation) tool, online PCB tool, online PCB software for electronics engineers, educators, students, makers and enthusiasts. Theres no need to install any software. Just open EasyEDA in any...
34.4 MB  
Linux Software  -  wpCache® WordPress HTTP Cache 1.9
wpCache® is a high-performance, distributed object, caching system application, generic in nature, but intended for use in speeding up dynamic web applications, by decreasing database load time. wpCache® decreases dramatically the page...
3.51 MB  
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB